/* ===== Villaverde · presentación profesional de la camada 170 ===== */
body article.node-type-camada.vv-pro-ready { max-width:1180px; }
body article.node-type-camada.vv-pro-ready > .node-content {
  display:block !important;
}
body article.node-type-camada.vv-pro-ready > .node-content > :not(.vv-pro) {
  display:none !important;
}
body article.node-type-camada .vv-pro {
  --ink:#352b22; --muted:#6d645b; --paper:#fffdf9; --wash:#faf7f2;
  --line:#e7ddd0; --gold:#a58f62; --olive:#7e8551;
  display:grid; gap:28px; color:var(--ink);
  font-family:Arial,Helvetica,sans-serif;
}
body article.node-type-camada .vv-pro h1,
body article.node-type-camada .vv-pro h2,
body article.node-type-camada .vv-pro h3 {
  font-family:Georgia,"Times New Roman",serif; color:var(--ink);
}
body article.node-type-camada .vv-pro-panel {
  border:1px solid var(--line); border-radius:24px; background:rgba(255,253,249,.94);
  box-shadow:0 16px 46px rgba(59,44,29,.07);
}
body article.node-type-camada .vv-pro-hero {
  display:grid; grid-template-columns:minmax(0,1fr) 410px; gap:46px;
  align-items:center; min-height:570px; padding:38px 42px;
}
body article.node-type-camada .vv-pro-kicker {
  margin:0 0 18px; color:var(--gold); font-size:14px; font-weight:800;
  letter-spacing:.16em; text-transform:uppercase;
}
body article.node-type-camada .vv-pro-hero h1 {
  margin:0 0 16px; font-size:clamp(48px,6vw,72px); line-height:.98; letter-spacing:-.035em;
}
body article.node-type-camada .vv-pro-born {
  margin:0 0 24px; color:#514940; font-size:16px;
}
body article.node-type-camada .vv-pro-summary {
  display:inline-flex; align-items:center; gap:15px; margin-bottom:24px; padding:13px 20px;
  border-radius:999px; background:#f5efe7;
}
body article.node-type-camada .vv-pro-summary__paw { color:var(--olive); font-size:27px; }
body article.node-type-camada .vv-pro-summary strong,
body article.node-type-camada .vv-pro-summary span { display:block; }
body article.node-type-camada .vv-pro-summary span { margin-top:3px; color:var(--muted); font-size:13px; }
body article.node-type-camada .vv-pro-intro {
  max-width:520px; margin:0; color:var(--muted); font-size:15px; line-height:1.7;
}
body article.node-type-camada .vv-pro-poster {
  display:grid; min-height:490px; place-items:center; overflow:hidden; padding:18px;
  border-radius:20px; background:#f4eee5;
}
body article.node-type-camada .vv-pro-poster img {
  display:block; width:auto; max-width:100%; height:auto; max-height:520px; object-fit:contain;
  border-radius:14px; box-shadow:0 12px 28px rgba(55,39,24,.16);
}
body article.node-type-camada .vv-pro-parents { padding:26px 24px 24px; }
body article.node-type-camada .vv-pro-section-title {
  margin:0 0 24px; font-size:32px; text-align:center;
}
body article.node-type-camada .vv-pro-parents-grid {
  position:relative; display:grid; grid-template-columns:1fr 1fr; gap:18px;
}
body article.node-type-camada .vv-pro-amp {
  position:absolute; z-index:4; top:50%; left:50%; transform:translate(-50%,-50%);
  display:grid; width:58px; height:58px; place-items:center; border:1px solid #e2d5c4;
  border-radius:50%; background:#eee4d6; color:#685849; font:29px Georgia,serif;
}
body article.node-type-camada .vv-pro-parent {
  display:grid; grid-template-columns:42% 58%; min-height:330px; overflow:hidden;
  border:1px solid var(--line); border-radius:18px; background:#fff;
}
body article.node-type-camada .vv-pro-parent--reverse { grid-template-columns:58% 42%; }
body article.node-type-camada .vv-pro-parent__photo { overflow:hidden; background:#f1ebe3; }
body article.node-type-camada .vv-pro-parent__photo img {
  display:block; width:100%; height:100%; object-fit:cover;
}
body article.node-type-camada .vv-pro-parent__info {
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  padding:32px 30px; text-align:left;
}
body article.node-type-camada .vv-pro-parent__badge {
  display:inline-flex; margin-bottom:14px; padding:6px 12px; border-radius:999px;
  background:#f2e7d5; color:#967c4d; font-size:11px; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase;
}
body article.node-type-camada .vv-pro-parent h3 {
  margin:0 0 14px; font-size:31px; line-height:1;
}
body article.node-type-camada .vv-pro-parent h3 a { color:inherit; text-decoration:none; }
body article.node-type-camada .vv-pro-parent dl {
  display:grid; grid-template-columns:auto 1fr; gap:10px 7px; margin:0; font-size:13px; line-height:1.4;
}
body article.node-type-camada .vv-pro-parent dt { font-weight:700; }
body article.node-type-camada .vv-pro-parent dd { margin:0; color:#554d45; }
body article.node-type-camada .vv-pro-puppies { padding:28px 22px 24px; }
body article.node-type-camada .vv-pro-puppies .vv-pro-section-title::before {
  content:"🐾"; margin-right:9px; color:var(--olive); font:18px Arial,sans-serif;
}
body article.node-type-camada .vv-pro-puppy-grid {
  display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:14px;
}
body article.node-type-camada .vv-pro-puppy {
  overflow:hidden; border:1px solid var(--line); border-radius:12px; background:#fff;
  transition:transform .2s ease,box-shadow .2s ease;
}
body article.node-type-camada .vv-pro-puppy:hover {
  transform:translateY(-3px); box-shadow:0 11px 24px rgba(55,40,25,.1);
}
body article.node-type-camada .vv-pro-puppy__media {
  display:grid; width:100%; aspect-ratio:.75; overflow:hidden; place-items:center;
  position:relative; background:linear-gradient(145deg,#f3eee7,#e9e1d6); text-decoration:none;
}

/* Menú móvil: categorías compactas y submenús tipo acordeón. */
@media (max-width: 991px) {
  .region-primary-menu .menu-item-level-1.menu-item-has-children {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 46px;
    align-items: center;
    flex-wrap: nowrap;
    padding: 0;
  }

  .region-primary-menu .menu-item-level-1.menu-item-has-children > a,
  .region-primary-menu .menu-item-level-1.menu-item-has-children > span {
    grid-column: 1;
    min-width: 0;
    padding: 16px 10px;
    line-height: 1.3;
  }

  .region-primary-menu .menu-item-level-1.menu-item-has-children > .submenu-toggle {
    grid-column: 2;
    grid-row: 1;
    position: relative;
    align-self: center;
    justify-self: center;
    margin: 0;
  }

  .region-primary-menu .menu-item-level-1.menu-item-has-children > .submenu {
    grid-column: 1 / -1;
    grid-row: 2;
    display: none !important;
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 12px;
  }

  .region-primary-menu .menu-item-level-1.menu-item-has-children > .submenu-toggle[aria-expanded="true"] + .submenu {
    display: flex !important;
  }

  .region-primary-menu .submenu li:first-child {
    border-top: 0;
  }

  .region-primary-menu .submenu a,
  .region-primary-menu .submenu li > span {
    padding: 12px 12px;
    line-height: 1.35;
  }
}
body article.node-type-camada .vv-pro-puppy__media img {
  display:block; width:100%; height:100%; position:relative; z-index:2; object-fit:cover;
}
body article.node-type-camada .vv-pro-puppy__placeholder {
  display:none; position:absolute; inset:0; place-content:center; place-items:center;
  gap:8px; color:#9b8a70; text-align:center;
}
body article.node-type-camada .vv-pro-puppy__placeholder span { font-size:27px; opacity:.7; }
body article.node-type-camada .vv-pro-puppy__placeholder small {
  font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
}
body article.node-type-camada .vv-pro-puppy__media.is-missing .vv-pro-puppy__placeholder { display:grid; }
body article.node-type-camada .vv-pro-puppy__body { padding:11px 8px 12px; text-align:center; }
body article.node-type-camada .vv-pro-puppy h3 { margin:0 0 6px; font-size:16px; }
body article.node-type-camada .vv-pro-puppy h3 a { color:inherit; text-decoration:none; }
body article.node-type-camada .vv-pro-puppy p { margin:0; color:var(--muted); font-size:11px; text-transform:capitalize; }
body article.node-type-camada .vv-pro-puppy p.vv-pro-puppy__color {
  margin-top:4px; color:#806b50; font-size:10px; line-height:1.3; text-transform:none;
}
body article.node-type-camada .vv-pro-puppy__color strong { color:#4a3324; font-weight:700; }
body article.node-type-camada .vv-pro-values {
  display:grid; grid-template-columns:repeat(4,1fr); padding:24px 12px;
}
body article.node-type-camada .vv-pro-value {
  padding:8px 24px; border-right:1px solid var(--line); text-align:center;
}
body article.node-type-camada .vv-pro-value:last-child { border-right:0; }
body article.node-type-camada .vv-pro-value__icon {
  display:block; color:var(--olive); font-size:27px; line-height:1;
}
body article.node-type-camada .vv-pro-value h3 { margin:10px 0 8px; font-size:18px; }
body article.node-type-camada .vv-pro-value p {
  margin:0; color:var(--muted); font-size:12px; line-height:1.5;
}
@media(max-width:980px){
  body article.node-type-camada .vv-pro-hero { grid-template-columns:1fr; }
  body article.node-type-camada .vv-pro-poster { min-height:0; }
  body article.node-type-camada .vv-pro-puppy-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:760px){
  body article.node-type-camada .vv-pro-hero { padding:28px; gap:28px; }
  body article.node-type-camada .vv-pro-parents-grid { grid-template-columns:1fr; }
  body article.node-type-camada .vv-pro-amp { display:none; }
  body article.node-type-camada .vv-pro-values { grid-template-columns:1fr 1fr; }
  body article.node-type-camada .vv-pro-value:nth-child(2) { border-right:0; }
  body article.node-type-camada .vv-pro-value:nth-child(-n+2) { border-bottom:1px solid var(--line); }
}
@media(max-width:520px){
  body article.node-type-camada .vv-pro { gap:18px; }
  body article.node-type-camada .vv-pro-hero h1 { font-size:43px; }
  body article.node-type-camada .vv-pro-parent,
  body article.node-type-camada .vv-pro-parent--reverse { grid-template-columns:1fr; }
  body article.node-type-camada .vv-pro-parent--reverse .vv-pro-parent__info { order:2; }
  body article.node-type-camada .vv-pro-parent__photo img { height:auto; max-height:480px; object-fit:contain; }
  body article.node-type-camada .vv-pro-puppy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body article.node-type-camada .vv-pro-values { grid-template-columns:1fr; }
  body article.node-type-camada .vv-pro-value { border-right:0; border-bottom:1px solid var(--line); }
}
/* ================================================================= */

/* ==================================================
   VILLAVERDE DE LA MARINA
   CSS personalizado
   ================================================== */
/* ===== Villaverde - portada nueva (nodo 182) ===== */

/* Ocultar autor y fecha */
article[data-history-node-id="182"] > .node-header {
  display: none !important;
}

/* Navegación principal renovada */
@media (min-width: 992px) {
  .region-primary-menu > nav > .main-menu {
    align-items: center;
    gap: 3px;
  }

  .region-primary-menu .menu-item-level-1 {
    border-radius: 10px;
  }

  .region-primary-menu .menu-item-level-1 > a {
    position: relative;
    padding: 13px 12px;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.15;
    white-space: nowrap;
    transition: color .2s ease, background-color .2s ease;
  }

  .region-primary-menu .menu-item-level-1 > a::after {
    content: "";
    position: absolute;
    right: 12px;
    bottom: 7px;
    left: 12px;
    height: 2px;
    border-radius: 2px;
    background: #8a9a68;
    transform: scaleX(0);
    transition: transform .2s ease;
  }

  .region-primary-menu .menu-item-level-1:hover > a::after,
  .region-primary-menu .menu-item-level-1.menu-item-active > a::after,
  .region-primary-menu .menu-item-level-1 > a.is-active::after {
    transform: scaleX(1);
  }

  .region-primary-menu .menu-item-has-children > a {
    padding-right: 36px;
  }

  .region-primary-menu .menu-item-has-children > .submenu-toggle {
    position: absolute;
    top: 50%;
    right: 9px;
    width: 22px;
    height: 22px;
    padding: 0;
    overflow: hidden;
    color: transparent !important;
    transform: translateY(-50%);
    cursor: pointer;
  }

  .region-primary-menu .menu-item-has-children > .submenu-toggle::before {
    content: "";
    position: absolute;
    top: 6px;
    left: 7px;
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: #5e554d;
    transform: rotate(45deg);
    transition: transform .2s ease;
  }

  .region-primary-menu .menu-item-has-children:hover > .submenu-toggle::before,
  .region-primary-menu .submenu-toggle[aria-expanded="true"]::before {
    color: #fff;
    transform: rotate(225deg) translate(-2px, -2px);
  }

  .region-primary-menu .submenu {
    top: calc(100% + 8px);
    min-width: 245px;
    max-width: 340px;
    padding: 9px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 14px;
    background: #292725;
    box-shadow: 0 18px 45px rgba(31, 24, 19, .22);
    animation-duration: .22s;
  }

  .region-primary-menu .submenu::before {
    content: "";
    position: absolute;
    top: -8px;
    right: 0;
    left: 0;
    height: 8px;
  }

  .region-primary-menu .submenu li {
    border: 0;
  }

  .region-primary-menu .submenu a,
  .region-primary-menu .submenu li > span {
    width: 100%;
    padding: 11px 13px;
    border-radius: 8px;
    box-sizing: border-box;
    color: #f6f1eb;
    font-size: 14px;
    line-height: 1.3;
    transition: background-color .18s ease, color .18s ease, padding-left .18s ease;
  }

  .region-primary-menu .submenu a:hover,
  .region-primary-menu .submenu a:focus,
  .region-primary-menu .submenu a.is-active {
    padding-left: 18px;
    background: rgba(154, 169, 126, .18);
    color: #d9e4bd;
  }
}

@media (max-width: 991px) {
  .active-menu .menu-wrap {
    max-width: 370px;
    background: #252321;
    box-shadow: 15px 0 40px rgba(0, 0, 0, .28);
  }

  .region-primary-menu .menu {
    padding: 14px 18px 28px;
  }

  .region-primary-menu .menu-item-level-1 {
    border-bottom-color: rgba(255, 255, 255, .13);
  }

  .region-primary-menu .menu-item-level-1 > a {
    padding: 15px 10px;
    font-size: 16px;
    font-weight: 600;
  }

  .region-primary-menu .menu-item-has-children > .submenu-toggle {
    width: 45px;
    height: 45px;
    margin-right: 2px;
    color: transparent;
    border-radius: 9px;
  }

  .region-primary-menu .menu-item-has-children > .submenu-toggle::before,
  .region-primary-menu .menu-item-has-children > .submenu-toggle::after {
    content: "";
    position: absolute;
    top: 22px;
    left: 14px;
    width: 17px;
    height: 2px;
    border-radius: 2px;
    background: #fff;
    transition: transform .2s ease;
  }

  .region-primary-menu .menu-item-has-children > .submenu-toggle::after {
    transform: rotate(90deg);
  }

  .region-primary-menu .menu-item-has-children > .submenu-toggle[aria-expanded="true"]::after {
    transform: rotate(0);
  }

  .region-primary-menu .submenu {
    margin: 0 0 10px;
    padding: 4px 0 4px 16px;
    border-left: 2px solid #91a06f;
  }

  .region-primary-menu .submenu li {
    border-color: rgba(255, 255, 255, .1);
  }

  .region-primary-menu .submenu a {
    padding: 11px 10px;
    color: #e9e2da;
    font-size: 14px;
  }

  .region-primary-menu .menu-item-active > a,
  .region-primary-menu a.is-active {
    color: #cbd8ac;
  }
}

/* Genética */
article[data-history-node-id="9"] .field--name-body { margin: 0; }
.vv-genetica { --vvg-dark:#382b20; --vvg-green:#718154; --vvg-cream:#f7f1e8; color:#51483f; font-size:16px; line-height:1.7; }
.vv-genetica h1,.vv-genetica h2,.vv-genetica h3 { color:var(--vvg-dark); font-family:Georgia,"Times New Roman",serif; line-height:1.12; }
.vv-genetica-kicker { margin:0 0 9px; color:var(--vvg-green); font-size:12px; font-weight:700; letter-spacing:.17em; }
.vv-genetica-hero { padding:70px 35px 76px; border-radius:26px; background:linear-gradient(135deg,rgba(35,27,20,.95),rgba(76,62,46,.89)),url('/themes/custom/villaverde_marina/images/bg.jpg') center/cover; color:#f8f3eb; text-align:center; }
.vv-genetica-hero .vv-genetica-kicker { color:#c4d39e; }
.vv-genetica-hero h1 { max-width:780px; margin:13px auto 18px; color:#fff; font-size:58px; }
.vv-genetica-hero > p:last-child { max-width:790px; margin:0 auto; color:#eee7de; font-size:19px; }
.vv-genetica-separador { display:flex; align-items:center; justify-content:center; gap:12px; }
.vv-genetica-separador span { width:58px; height:1px; background:rgba(255,255,255,.36); }
.vv-genetica-separador b { font-size:18px; }
.vv-genetica-pilares { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:22px 0; }
.vv-genetica-pilares article { position:relative; padding:31px 27px 27px; overflow:hidden; border:1px solid #e7ded1; border-radius:18px; background:#fff; box-shadow:0 12px 35px rgba(66,48,32,.06); }
.vv-genetica-pilares article > span { position:absolute; top:10px; right:17px; color:#e8dfd2; font:700 38px Georgia,serif; }
.vv-genetica-pilares h2 { position:relative; margin:0 0 10px; font-size:23px; }
.vv-genetica-pilares p { margin:0; }
.vv-genetica-mdr1 { display:grid; grid-template-columns:.85fr 1.15fr; gap:45px; margin:38px 0; padding:48px; border-radius:23px; background:var(--vvg-cream); }
.vv-genetica-mdr1 h2,.vv-genetica-seccion-titulo h2,.vv-genetica-merle h2,.vv-genetica-nbt h2,.vv-genetica-compromiso h2 { margin:0; font-size:36px; }
.vv-genetica-mdr1-contenido > p { margin:0 0 18px; }
.vv-genetica-aviso { padding:18px 21px; border-left:4px solid var(--vvg-green); border-radius:0 12px 12px 0; background:#fff; }
.vv-genetica-aviso strong { color:var(--vvg-dark); }
.vv-genetica-aviso p { margin:3px 0 0; }
.vv-genetica-merle { display:grid; grid-template-columns:1.35fr .65fr; gap:42px; align-items:center; padding:52px 48px; border:1px solid #e7ded1; border-radius:23px; }
.vv-genetica-merle > div p:not(.vv-genetica-kicker) { margin:14px 0 0; }
.vv-genetica-merle aside { padding:33px 25px; border-radius:18px; background:#44362b; color:#eee6db; text-align:center; }
.vv-genetica-merle aside span { display:block; color:#cbd5ac; font-size:12px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.vv-genetica-merle aside strong { display:block; margin:9px 0; color:#fff; font:700 25px/1.25 Georgia,serif; }
.vv-genetica-merle aside p { margin:0; font-size:14px; }
.vv-genetica-pruebas { margin:38px 0; padding:50px 48px; border-radius:23px; background:#f3eee7; }
.vv-genetica-seccion-titulo { max-width:720px; margin:0 auto 30px; text-align:center; }
.vv-genetica-seccion-titulo > p:last-child { margin:12px 0 0; }
.vv-genetica-pruebas-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.vv-genetica-pruebas-grid article { padding:27px; border-radius:15px; background:#fff; }
.vv-genetica-pruebas-grid span { color:var(--vvg-green); font-size:11px; font-weight:700; letter-spacing:.13em; }
.vv-genetica-pruebas-grid h3 { margin:6px 0 8px; font-size:23px; }
.vv-genetica-pruebas-grid p { margin:0; }
.vv-genetica-nbt { display:grid; grid-template-columns:150px 1fr; gap:36px; align-items:center; margin:38px 0; padding:48px; border:1px solid #dbe2cb; border-radius:23px; background:#f5f7ef; }
.vv-genetica-nbt-simbolo { display:flex; align-items:center; justify-content:center; width:130px; height:130px; border-radius:50%; background:var(--vvg-green); color:#fff; font:700 64px Georgia,serif; box-shadow:0 12px 30px rgba(82,99,53,.2); }
.vv-genetica-nbt p:not(.vv-genetica-kicker) { margin:12px 0 0; }
.vv-genetica-interpretar { margin:38px 0; padding:50px 48px; border:1px solid #e7ded1; border-radius:23px; }
.vv-genetica-estados { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.vv-genetica-estados article { padding:25px; border-top:4px solid #9ba980; border-radius:12px; background:#f8f4ee; }
.vv-genetica-estados strong { color:var(--vvg-dark); font:700 22px Georgia,serif; }
.vv-genetica-estados p { margin:8px 0 0; }
.vv-genetica-diversidad { max-width:800px; margin:27px auto 0; padding:17px 21px; border-radius:12px; background:#edf1e5; text-align:center; }
.vv-genetica-compromiso { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:start; margin:38px 0; padding:50px 48px; border-radius:23px; background:#403329; color:#eee6dc; }
.vv-genetica-compromiso h2 { color:#fff; }
.vv-genetica-compromiso ul { margin:0; padding:0; list-style:none; }
.vv-genetica-compromiso li { position:relative; margin:0 0 13px; padding:0 0 13px 30px; border-bottom:1px solid rgba(255,255,255,.13); }
.vv-genetica-compromiso li::before { content:'✓'; position:absolute; left:0; color:#c4d39e; font-weight:700; }
.vv-genetica-cierre { padding:52px 25px; text-align:center; }
.vv-genetica-cierre p { margin:0; color:var(--vvg-green); font-weight:700; }
.vv-genetica-cierre h2 { max-width:700px; margin:8px auto 24px; font-size:36px; }
.vv-genetica-cierre a { display:inline-block; padding:12px 24px; border-radius:999px; background:var(--vvg-green); color:#fff; font-weight:700; text-decoration:none; }
.vv-genetica-fuentes { padding:27px 31px; border-top:1px solid rgba(91,57,34,.18); }
.vv-genetica-fuentes h2 { margin:0 0 13px; font-size:18px; }
.vv-genetica-fuentes ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px 30px; margin:0; padding-left:18px; }
.vv-genetica-fuentes a { color:#6b5846; font-size:13px; }
.vv-genetica-fuentes > p { margin:17px 0 0; color:#766b61; font-size:13px; }
@media(max-width:800px){.vv-genetica-pilares,.vv-genetica-mdr1,.vv-genetica-merle,.vv-genetica-nbt,.vv-genetica-compromiso{grid-template-columns:1fr}.vv-genetica-nbt-simbolo{margin:auto}.vv-genetica-estados{grid-template-columns:1fr}.vv-genetica-pruebas-grid{grid-template-columns:1fr}}
@media(max-width:600px){article[data-history-node-id="9"]{padding:0 11px;box-sizing:border-box}.vv-genetica-hero{padding:45px 18px 49px;border-radius:20px}.vv-genetica-hero h1{font-size:40px}.vv-genetica-hero>p:last-child{font-size:17px}.vv-genetica-pilares{grid-template-columns:1fr}.vv-genetica-mdr1,.vv-genetica-merle,.vv-genetica-pruebas,.vv-genetica-nbt,.vv-genetica-interpretar,.vv-genetica-compromiso{padding:36px 23px}.vv-genetica-mdr1 h2,.vv-genetica-seccion-titulo h2,.vv-genetica-merle h2,.vv-genetica-nbt h2,.vv-genetica-compromiso h2,.vv-genetica-cierre h2{font-size:30px}.vv-genetica-fuentes ul{grid-template-columns:1fr}}

/* Dar más anchura a la zona principal */
body.page-type-pagina-modular .main-wrapper > .container {
  max-width: 1500px !important;
  width: 94% !important;
}

/* El contenido del nodo ocupa todo el ancho disponible */
article[data-history-node-id="182"],
article[data-history-node-id="182"] .node-content,
article[data-history-node-id="182"] .layout,
article[data-history-node-id="182"] .layout__region {
  width: 100% !important;
  max-width: none !important;
}

/* Separación elegante entre menú y hero */
body.page-type-pagina-modular .main-wrapper {
  padding-top: 24px;
}
/* =========================================
   Villaverde - Nuestra trayectoria
   ========================================= */

article[data-history-node-id="182"] .vv-trayectoria {
  max-width: 1250px;
  margin: 70px auto;
  padding: 20px 40px 30px;
  text-align: center;
}

article[data-history-node-id="182"] .vv-trayectoria-intro {
  max-width: 850px;
  margin: 0 auto 45px;
}

article[data-history-node-id="182"] .vv-kicker {
  display: block;
  margin-bottom: 12px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #d66200;
}

article[data-history-node-id="182"] .vv-trayectoria h2 {
  margin: 0 0 20px;
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1.15;
  color: #222;
}

article[data-history-node-id="182"] .vv-trayectoria-intro p {
  margin: 0;
  font-size: 18px;
  line-height: 1.7;
  color: #555;
}

article[data-history-node-id="182"] .vv-cifras {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}

article[data-history-node-id="182"] .vv-cifra {
  padding: 30px 15px;
  border-right: 1px solid #ddd;
}

article[data-history-node-id="182"] .vv-cifra:last-child {
  border-right: 0;
}

article[data-history-node-id="182"] .vv-cifra strong {
  display: block;
  margin-bottom: 5px;
  font-size: 40px;
  line-height: 1;
  color: #d66200;
}

article[data-history-node-id="182"] .vv-cifra span {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: #333;
}

/* Tablet */
@media (max-width: 900px) {
  article[data-history-node-id="182"] .vv-cifras {
    grid-template-columns: repeat(2, 1fr);
  }

  article[data-history-node-id="182"] .vv-cifra:nth-child(2) {
    border-right: 0;
  }

  article[data-history-node-id="182"] .vv-cifra:nth-child(-n+2) {
    border-bottom: 1px solid #ddd;
  }
}

/* Móvil */
@media (max-width: 550px) {
  article[data-history-node-id="182"] .vv-trayectoria {
    margin: 45px auto;
    padding: 15px 20px;
  }

  article[data-history-node-id="182"] .vv-cifras {
    grid-template-columns: 1fr;
  }

  article[data-history-node-id="182"] .vv-cifra {
    border-right: 0;
    border-bottom: 1px solid #ddd;
  }

  article[data-history-node-id="182"] .vv-cifra:last-child {
    border-bottom: 0;
  }
}

/* ==================================================
   HERO PORTADA
   ================================================== */

.vdlm-hero {
  position:relative;
  min-height:580px;
  display:flex;
  align-items:flex-start;
  padding:55px 8%;
  box-sizing:border-box;
  overflow:hidden;
  border-radius:4px;

  background-image:
    linear-gradient(
      90deg,
      rgba(25,18,13,.78) 0%,
      rgba(30,22,16,.60) 32%,
      rgba(30,22,16,.25) 58%,
      rgba(30,22,16,.05) 100%
    ),
    url("https://villaverdedelamarina.com/sites/default/files/2025-11/Portada%207.jpeg");

  background-size:cover;
  background-position:center 58%;
  background-repeat:no-repeat;
}


.vdlm-hero__content {
  position:relative;
  z-index:2;
  max-width:760px;
  color:#fff;
}


.vdlm-hero__eyebrow {
  margin:0 0 12px;
  font-size:15px;
  font-weight:700;
  letter-spacing:3px;
  text-transform:uppercase;
  color:#e7c18a;
}


.vdlm-hero h1 {
  margin:0 0 12px;
  font-size:clamp(40px,3.4vw,54px);
  line-height:1.05;
  font-weight:700;
  color:#fff;
  white-space:nowrap;
}


.vdlm-hero__subtitle {
  max-width:650px;
  margin:0 0 20px;
  font-size:20px;
  line-height:1.4;
  color:rgba(255,255,255,.92);
}


.vdlm-hero__buttons {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}


.vdlm-hero .vdlm-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:0 26px;
  border-radius:4px;
  font-size:16px;
  font-weight:600;
  text-decoration:none;
}


.vdlm-btn--primary {
  background:#c65f08;
  color:#fff;
}


.vdlm-btn--secondary {
  background:transparent;
  border:2px solid rgba(255,255,255,.8);
  color:#fff;
}


/* ==================================================
   OCULTAR ELEMENTOS DRUPAL
   ================================================== */

.frontpage .page-title-wrap,
.frontpage #block-villaverde-marina-local-tasks,
.frontpage .node-submitted-details {
  display:none !important;
}


/* ==================================================
   REPRODUCTORES
   ================================================== */


.reproductores-grid .view-content {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px;
}


.reproductores-grid .views-row {
  background:#fff;
  border-radius:14px;
  padding:25px 22px 30px;
  text-align:center;
  box-shadow:0 8px 25px rgba(0,0,0,.08);
  transition:.25s ease;

  display:flex;
  flex-direction:column;
}


.reproductores-grid .views-row:hover {
  transform:translateY(-5px);
  box-shadow:0 12px 30px rgba(0,0,0,.12);
}


/* Imagen */

.reproductores-grid .views-field-field-foto img {
  width:100%;
  max-width:350px;
  height:auto;
  margin:0 auto 20px;
  display:block;
  border-radius:10px;
}


/* Nombre */

.reproductores-grid .views-field-title {
  margin:15px 0 20px;
}


.reproductores-grid .views-field-title a {
  color:#d86b00;
  font-size:30px;
  font-weight:500;
  letter-spacing:.5px;
  text-decoration:none;
}


.reproductores-grid .views-field-title::after {
  content:"";
  display:block;
  width:45px;
  height:2px;
  background:#d8a24a;
  margin:12px auto 0;
}


/* Información */

.reproductores-grid .views-field {
  margin-top:8px;
  font-size:18px;
  line-height:1.6;
  color:#555;
}


/* LOE */

.reproductores-grid .views-field-field-loe {
  margin-top:15px;
  text-align:center;
}


.reproductores-grid .views-field-field-loe .views-label,
.reproductores-grid .views-field-field-loe .field__label,
.reproductores-grid .views-field-field-loe .field-label {
  display:inline;
  margin-right:6px;
}


.reproductores-grid .views-field-field-loe .field-content,
.reproductores-grid .views-field-field-loe .field__item {
  display:inline;
}


/* ==================================================
   RESPONSIVE
   ================================================== */


@media(max-width:1000px){

  .reproductores-grid .view-content {
    grid-template-columns:repeat(2,1fr);
  }

}


@media(max-width:900px){

  .vdlm-hero h1 {
    white-space:normal;
  }

}


@media(max-width:768px){

  .vdlm-hero {
    min-height:480px;
    padding:45px 28px;
  }


  .vdlm-hero__content {
    max-width:100%;
  }


  .vdlm-hero__buttons {
    flex-direction:column;
  }


  .reproductores-grid .view-content {
    grid-template-columns:1fr;
  }

}

/* ==================================================
   LOE EN UNA SOLA LÍNEA
   ================================================== */

.reproductores-grid .views-field-field-loe-libro-de-origenes-espa {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
}

.reproductores-grid
.views-field-field-loe-libro-de-origenes-espa .views-label {
  display: inline;
}

.reproductores-grid
.views-field-field-loe-libro-de-origenes-espa .field-content {
  display: inline;
}

/* ==================================================
   CABECERAS DE VISTAS
   ================================================== */

.vdlm-view-header {
  max-width:850px;
  margin:0 auto 50px;
  text-align:center;
}

.vdlm-view-header h1 {
  margin:0 0 20px;
  font-size:42px;
  font-weight:600;
  color:#3b2a1d;
}

.vdlm-view-header p {
  margin:10px auto;
  font-size:19px;
  line-height:1.6;
  color:#666;
}


/* ===== TARJETAS LISTADO DE CAMADAS ===== */

.camadas-listado .view-header h1 {
  color: #d65a00;
  margin-bottom: 20px;
}
.camadas-listado .views-view-responsive-grid__item {
  background: #ffffff;
  border-radius: 14px;
  padding: 22px 18px 18px;
  box-shadow: 0 3px 14px rgba(0,0,0,0.07);
  text-align: center;
}

/* Separación vertical entre filas */
.camadas-listado .views-view-responsive-grid {
  row-gap: 30px !important;
}

/* Nombres de los padres */
.camadas-listado .views-field-field-hembra,
.camadas-listado .views-field-field-macho {
  font-size: 21px;
  line-height: 1.25;
}

/* Fecha del parto */
.camadas-listado .views-field-field-parto {
  font-size: 14px;
  margin-top: 10px;
  margin-bottom: 14px;
  color: #555;
}

/* Cachorros */
.camadas-listado .views-field-field-cachorros {
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.5;
}


/* Ajuste específico para Camadas programadas */
.camadas-programadas .views-view-responsive-grid__item {
  padding-bottom: 14px;
}

.camadas-programadas .views-field-field-photo {
  margin-bottom: 0;
}

.camadas-programadas .views-field-field-photo img {
  margin-bottom: 0 !important;
}

/* =========================================================
   VILLAVERDE DE LA MARINA
   Cuadrícula responsive de cachorros en las camadas
   ========================================================= */

/* Escritorio: máximo 5 cachorros por fila */
.node-taxonomy-container.field--name-field-cachorros {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 20px 22px;
  row-gap: 18px !important;
  width: 100%;
  align-items: start;
}

/* Cada cachorro ocupa correctamente su celda */
.node-taxonomy-container.field--name-field-cachorros > .field-item {
  min-width: 0;
  width: 100%;
  margin: 0;
}

/* Ficha individual del cachorro */
.node-taxonomy-container.field--name-field-cachorros
.node-view-mode-cachorros {
  width: 100%;
  margin: 0;
}

/* Nombre del cachorro */
.node-taxonomy-container.field--name-field-cachorros
.node-view-mode-cachorros .node-title {
  margin-top: 0;
  margin-bottom: 10px;
}

/* Evita que una imagen sobrepase su columna */
.node-taxonomy-container.field--name-field-cachorros
.node-view-mode-cachorros img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* Tablet: 3 cachorros por fila */
@media (max-width: 1000px) {
  .node-taxonomy-container.field--name-field-cachorros {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px 18px;
  }
}

/* Móvil: 2 cachorros por fila */
@media (max-width: 650px) {
  .node-taxonomy-container.field--name-field-cachorros {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 14px;
  }
}

/* Móviles muy estrechos: 1 cachorro por fila */
@media (max-width: 420px) {
  .node-taxonomy-container.field--name-field-cachorros {
    grid-template-columns: 1fr;
  }
}
/* Alinear verticalmente las fichas de cachorros */
.node-taxonomy-container.field--name-field-cachorros
.node-view-mode-cachorros .node-content {
  display: flex;
  flex-direction: column;
}

/* Sexo */
.node-taxonomy-container.field--name-field-cachorros
.field--name-field-sexo {
  min-height: 1.6em;
  margin-bottom: 10px;
}

/* Color */
.node-taxonomy-container.field--name-field-cachorros
.field--name-field-color {
  min-height: 1.6em;
  margin-bottom: 12px;
}

/* Quitar márgenes extra de cada ficha */
.node-taxonomy-container.field--name-field-cachorros
.node-view-mode-cachorros {
  margin: 0 !important;
  padding: 0;
}

/* =========================================================
   Información de la camada
   Foto 33% + datos 67%
   ========================================================= */

.node-type-camada.node-view-mode-full
.layout--twocol-section--33-67 {
  align-items: flex-start;
}

/* Columna de la foto */
.node-type-camada.node-view-mode-full
.layout--twocol-section--33-67
.layout__region--first {
  padding-right: 28px;
}

/* Columna Monta / Parto */
.node-type-camada.node-view-mode-full
.layout--twocol-section--33-67
.layout__region--second {
  padding-left: 10px;
}

/* Compactar los bloques de datos */
.node-type-camada.node-view-mode-full
.layout--twocol-section--33-67
.layout__region--second .block {
  margin-bottom: 8px;
}

/* Quitar márgenes extra del contenido interior */
.node-type-camada.node-view-mode-full
.layout--twocol-section--33-67
.layout__region--second .field {
  margin-bottom: 6px;
}
/* =====================================================
   CARTEL PRINCIPAL DE LA CAMADA
   Primera sección de una columna
   ===================================================== */

.node-type-camada.node-view-mode-full
.node-content > .layout--onecol:first-child
.field--name-field-photo {
  text-align: center;
}

.node-type-camada.node-view-mode-full
.node-content > .layout--onecol:first-child
.field--name-field-photo img {
  display: block;
  width: 100%;
  max-width: 350px;
  height: auto;
  margin: 0 auto;
}

/* =========================================
   CAMADA - CABECERA: CARTEL + FECHAS
   ========================================= */

/* Primera sección: cartel + Monta + Parto */
.node-type-camada.node-view-mode-full
.node-content > .layout--onecol:first-child {
  text-align: center;
}

/* Cartel */
.node-type-camada.node-view-mode-full
.node-content > .layout--onecol:first-child img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* Monta y Parto */
.node-type-camada.node-view-mode-full
.node-content > .layout--onecol:first-child .field {
  text-align: center;
}

/* Separación entre bloques */
.node-type-camada.node-view-mode-full
.node-content > .layout--onecol:first-child .block {
  margin-bottom: 6px;
}

/* Monta y Parto centrados como una sola línea */
.node-type-camada.node-view-mode-full
.node-content > .layout--onecol:first-child
.field--name-field-monta,

.node-type-camada.node-view-mode-full
.node-content > .layout--onecol:first-child
.field--name-field-parto {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 10px;
  width: 100%;
  text-align: center;
}

/* Evitar anchos/márgenes que separen etiqueta y valor */
.node-type-camada.node-view-mode-full
.node-content > .layout--onecol:first-child
.field--name-field-monta .field-label,
.node-type-camada.node-view-mode-full
.node-content > .layout--onecol:first-child
.field--name-field-parto .field-label,
.node-type-camada.node-view-mode-full
.node-content > .layout--onecol:first-child
.field--name-field-monta .field-item,
.node-type-camada.node-view-mode-full
.node-content > .layout--onecol:first-child
.field--name-field-parto .field-item {
  width: auto;
  margin: 0;
}

/* Separación entre cabecera de camada y reproductores */
.node-type-camada.node-view-mode-full
.node-content > .layout--onecol:first-child {
  margin-bottom: 40px;
}

/* =====================================================
   FICHA RESUMEN - REPRODUCTORES EN CAMADAS
   ===================================================== */

.node-view-mode-ficha-resume {
  text-align: center;
  width: 100%;
}

.node-view-mode-ficha-resume .node-content,
.node-view-mode-ficha-resume .layout--onecol,
.node-view-mode-ficha-resume .layout__region {
  width: 100%;
}

.node-view-mode-ficha-resume .field {
  text-align: center;
}

/* Centrar imágenes */
.node-view-mode-ficha-resume img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* Compactar un poco los campos */
.node-view-mode-ficha-resume .field {
  margin-bottom: 8px;
}

/* Separación antes de la foto */
.node-view-mode-ficha-resume .field--name-field-foto {
  margin-top: 12px;
}

/* =====================================================
   FICHA RESUMEN - ETIQUETA Y VALOR JUNTOS
   ===================================================== */

.node-view-mode-ficha-resume .field--label-inline {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 6px;
}

.node-view-mode-ficha-resume .field--label-inline .field__label,
.node-view-mode-ficha-resume .field--label-inline .field__item {
  float: none;
  margin: 0;
}

/* =====================================================
   FICHA RESUMEN - TAMAÑO FOTO REPRODUCTORES
   ===================================================== */

.node-view-mode-ficha-resume .field--name-field-photo img {
  width: 260px;
  max-width: 100%;
  height: auto;
  margin-left: auto;
  margin-right: auto;
}

/* =====================================================
   TARJETAS DE REPRODUCTORES
   ===================================================== */

.node-type-camada.node-view-mode-full
.layout--twocol-section--50-50
.layout__region--first,
.node-type-camada.node-view-mode-full
.layout--twocol-section--50-50
.layout__region--second {
  padding: 22px;
}

/* Tarjeta individual */
.node-type-camada.node-view-mode-full
.field--name-field-hembra,
.node-type-camada.node-view-mode-full
.field--name-field-macho {
  background: #fff;
  border-radius: 22px;
  padding: 24px 24px 28px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  max-width: 440px;
  margin: 0 auto;
}

/* Etiqueta Hembra / Macho */
.node-type-camada.node-view-mode-full
.field--name-field-hembra > .field__label,
.node-type-camada.node-view-mode-full
.field--name-field-macho > .field__label {
  text-align: center;
  margin-bottom: 8px;
}

/* Espacio interior de la ficha */
.node-type-camada.node-view-mode-full
.field--name-field-hembra .node-view-mode-ficha-resume,
.node-type-camada.node-view-mode-full
.field--name-field-macho .node-view-mode-ficha-resume {
  padding: 0;
}


/* =====================================================
   TARJETAS DE CACHORROS - SOLO CAMADA
   ===================================================== */

.node-type-camada.node-view-mode-full
.field--name-field-cachorros .field-item {
  background: #fff;
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
  box-sizing: border-box;
}

/* Centrar contenido */
.node-type-camada.node-view-mode-full
.field--name-field-cachorros .node-view-mode-cachorros {
  text-align: center;
}

/* Nombre */
.node-type-camada.node-view-mode-full
.field--name-field-cachorros .node-title {
  text-align: center;
  margin: 0 0 10px;
}

/* Campos */
.node-type-camada.node-view-mode-full
.field--name-field-cachorros .field {
  text-align: center;
}

/* Imagen */
.node-type-camada.node-view-mode-full
.field--name-field-cachorros img {
  display: block;
  width: 100%;
  height: auto;
  margin: 14px auto 0;
  border-radius: 10px;
}

/* =====================================================
   LIMPIAR INTERIOR DE TARJETAS DE CACHORROS
   Una sola tarjeta por cachorro
   ===================================================== */

.node-type-camada.node-view-mode-full
.field--name-field-cachorros .field-item .field {
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
}

/* Evitar tarjetas interiores */
.node-type-camada.node-view-mode-full
.field--name-field-cachorros .field-item article,
.node-type-camada.node-view-mode-full
.field--name-field-cachorros .field-item .node-content {
  box-shadow: none;
}

/* Separación uniforme entre los datos */
.node-type-camada.node-view-mode-full
.field--name-field-cachorros .field-item .field {
  margin-bottom: 10px;
}

/* Foto */
.node-type-camada.node-view-mode-full
.field--name-field-cachorros .field-item img {
  margin-top: 12px;
  border-radius: 10px;
}

/* =====================================================
   TARJETAS CACHORROS - ACABADO FINAL
   ===================================================== */

/* Quitar caja interior de la foto */
.node-type-camada.node-view-mode-full
.field--name-field-cachorros .field-item .field--name-field-foto,
.node-type-camada.node-view-mode-full
.field--name-field-cachorros .field-item .field--name-field-photo {
  background: transparent;
  box-shadow: none;
  padding: 0;
  border-radius: 0;
}

/* Foto directamente dentro de la tarjeta */
.node-type-camada.node-view-mode-full
.field--name-field-cachorros .field-item img {
  margin-top: 14px;
  border-radius: 10px;
}

/* Mantener una altura mínima uniforme en el campo color */
.node-type-camada.node-view-mode-full
.field--name-field-cachorros .field--name-field-color {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* =====================================================
   TÍTULO - CACHORROS DE LA CAMADA
   ===================================================== */

.node-type-camada.node-view-mode-full
.field--name-field-cachorros > .block-title,
.node-type-camada.node-view-mode-full
.field--name-field-cachorros > h2 {
  text-align: center;
  color: #d45b00;
  font-size: 2rem;
  font-weight: 400;
  margin: 45px 0 28px;
}

/* =====================================================
   TÍTULO BLOQUE CACHORROS
   ===================================================== */

.node-type-camada.node-view-mode-full
.block:has(.field--name-field-cachorros) > h2 {
  text-align: center !important;
  color: #d45b00 !important;
  font-size: 2rem !important;
  font-weight: 400 !important;
  margin: 45px 0 30px !important;
}

/* =====================================================
   TÍTULO - PADRES DE LA CAMADA
   ===================================================== */

.node-type-camada.node-view-mode-full
.layout--onecol:has(+ .layout--twocol-section--50-50)
.block-title {
  text-align: center !important;
  color: #d45b00 !important;
  font-size: 2rem !important;
  font-weight: 400 !important;
  margin: 45px 0 30px !important;
}

/* =====================================================
   CACHORROS - 5 POR FILA Y ÚLTIMA FILA CENTRADA
   ===================================================== */

.node-type-camada.node-view-mode-full
.node-taxonomy-container.field--name-field-cachorros {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 20px !important;
}

/* 5 cachorros por fila en escritorio */
.node-type-camada.node-view-mode-full
.node-taxonomy-container.field--name-field-cachorros > .field-item {
  width: calc((100% - 80px) / 5) !important;
  flex: 0 0 calc((100% - 80px) / 5) !important;
  min-width: 0 !important;
  margin: 0 !important;
}

/* Tablet: 3 por fila */
@media (max-width: 1000px) {
  .node-type-camada.node-view-mode-full
  .node-taxonomy-container.field--name-field-cachorros > .field-item {
    width: calc((100% - 40px) / 3) !important;
    flex-basis: calc((100% - 40px) / 3) !important;
  }
}

/* Móvil: 2 por fila */
@media (max-width: 700px) {
  .node-type-camada.node-view-mode-full
  .node-taxonomy-container.field--name-field-cachorros > .field-item {
    width: calc((100% - 20px) / 2) !important;
    flex-basis: calc((100% - 20px) / 2) !important;
  }
}

/* =========================================================
   DÓNDE ESTAMOS
   ========================================================= */
article[data-history-node-id="148"] {
  --vvd-brown: #5b3922;
  --vvd-dark: #3d2f22;
  --vvd-green: #6b7d50;
  width: min(100%, 1220px);
  margin: 0 auto;
}

article[data-history-node-id="148"] > .node-header {
  display: none;
}

article[data-history-node-id="148"]
.node-content > .layout--twocol-section:first-child {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(420px, 1.05fr);
  gap: 26px;
  align-items: stretch;
  padding: 30px;
  background: #f7f1e7;
  border: 1px solid rgba(91, 57, 34, .12);
  border-radius: 28px;
  box-shadow: 0 18px 45px rgba(61, 47, 34, .09);
}

article[data-history-node-id="148"]
.node-content > .layout--twocol-section:first-child > .layout__region {
  width: auto;
  max-width: none;
  flex: none;
}

.vv-donde-info {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 38px 30px;
  box-sizing: border-box;
}

.vv-donde-kicker {
  margin: 0;
  color: var(--vvd-green);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .22em;
}

.vv-donde-separador {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 180px;
  margin: 16px 0 25px;
  color: var(--vvd-brown);
}

.vv-donde-separador span {
  flex: 1;
  height: 1px;
  background: rgba(91, 57, 34, .28);
}

.vv-donde-info h1 {
  margin: 0 0 20px;
  color: var(--vvd-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 4.2vw, 58px);
  line-height: 1.03;
}

.vv-donde-intro,
.vv-donde-nota {
  margin: 0 0 15px;
  color: #5c5650;
  font-size: 17px;
  line-height: 1.7;
}

.vv-donde-nota {
  color: #736b61;
  font-size: 14px;
}

.vv-donde-datos {
  display: grid;
  gap: 12px;
  margin: 12px 0 23px;
}

.vv-donde-datos div {
  padding: 14px 16px;
  background: rgba(255, 255, 255, .7);
  border: 1px solid rgba(91, 57, 34, .1);
  border-radius: 12px;
}

.vv-donde-datos span {
  display: block;
  margin-bottom: 4px;
  color: #88735f;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
}

.vv-donde-datos strong,
.vv-donde-datos a {
  color: var(--vvd-dark);
  font-size: 15px;
  line-height: 1.45;
  text-decoration: none;
}

.vv-donde-acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: auto;
}

.vv-donde-boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 18px;
  color: var(--vvd-brown);
  background: transparent;
  border: 1px solid rgba(91, 57, 34, .38);
  border-radius: 11px;
  font-weight: 700;
  text-decoration: none;
}

.vv-donde-boton--principal,
.vv-donde-boton:hover {
  color: #fff;
  background: var(--vvd-brown);
}

article[data-history-node-id="148"]
.field--name-field-geolocalisacion {
  overflow: hidden;
  height: 100%;
  min-height: 590px;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 10px 28px rgba(61, 47, 34, .1);
}

article[data-history-node-id="148"]
.field--name-field-geolocalisacion > .field__label {
  display: none;
}

article[data-history-node-id="148"]
.field--name-field-geolocalisacion iframe {
  display: block;
  width: 100% !important;
  height: 520px !important;
  border: 0;
}

article[data-history-node-id="148"] .simple-gmap-link {
  margin: 0;
  padding: 18px 20px;
  text-align: center;
}

article[data-history-node-id="148"] .simple-gmap-link a {
  color: var(--vvd-brown);
  font-weight: 700;
  text-decoration: none;
}

article[data-history-node-id="148"]
.node-content > .layout--onecol {
  position: relative;
  margin-top: 58px;
  padding-top: 82px;
  border-top: 1px solid rgba(91, 57, 34, .18);
}

article[data-history-node-id="148"]
.node-content > .layout--onecol::before {
  position: absolute;
  top: 25px;
  left: 0;
  color: var(--vvd-dark);
  content: "Lo que cuentan nuestras familias";
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(27px, 3vw, 38px);
  font-weight: 700;
}

@media (max-width: 900px) {
  article[data-history-node-id="148"]
  .node-content > .layout--twocol-section:first-child {
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .vv-donde-info {
    padding: 28px 20px;
  }

  article[data-history-node-id="148"]
  .field--name-field-geolocalisacion {
    min-height: 0;
  }

  article[data-history-node-id="148"]
  .field--name-field-geolocalisacion iframe {
    height: 420px !important;
  }
}

@media (max-width: 600px) {
  article[data-history-node-id="148"] {
    padding: 0 11px;
    box-sizing: border-box;
  }

  article[data-history-node-id="148"]
  .node-content > .layout--twocol-section:first-child {
    gap: 14px;
    padding: 10px;
    border-radius: 20px;
  }

  .vv-donde-info h1 {
    font-size: 34px;
  }

  .vv-donde-acciones,
  .vv-donde-boton {
    width: 100%;
  }

  article[data-history-node-id="148"]
  .field--name-field-geolocalisacion iframe {
    height: 340px !important;
  }
}

/* En tarjetas estrechas, nacimiento ocupa una fila y respira mejor. */
.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.layout__region--content {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.block:first-child {
  grid-column: 1 / -1;
}

.view-cachorros-disponibles
.field--name-field-fecha-de-nacimiento time {
  font-size: 13px;
}

/* Reparto equilibrado: fecha y color necesitan más anchura que el sexo. */
.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2) {
  margin-right: 14px;
  margin-left: 14px;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.layout__region--content {
  grid-template-columns: minmax(88px, 1.35fr) minmax(52px, .75fr) minmax(86px, 1.25fr);
  gap: 6px;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.block {
  padding-right: 8px;
  padding-left: 8px;
}

.view-cachorros-disponibles
.field--name-field-fecha-de-nacimiento time,
.view-cachorros-disponibles
.field--name-field-color .field-item {
  white-space: nowrap;
  font-size: 12px;
}

@media (max-width: 700px) {
  .view-cachorros-disponibles
  .node-content > .layout--onecol:nth-of-type(2) {
    margin-right: 17px;
    margin-left: 17px;
  }

  .view-cachorros-disponibles
  .node-content > .layout--onecol:nth-of-type(2)
  .layout__region--content {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
  }

  .view-cachorros-disponibles
  .node-content > .layout--onecol:nth-of-type(2)
  .block:first-child {
    grid-column: 1 / -1;
  }
}

/* Móvil estrecho: 1 por fila */
@media (max-width: 430px) {
  .node-type-camada.node-view-mode-full
  .node-taxonomy-container.field--name-field-cachorros > .field-item {
    width: 100% !important;
    flex-basis: 100% !important;
  }
}

/* =====================================================
   CABECERA DE CAMADA - CARTEL + MONTA + PARTO
   ===================================================== */

/* Sección que contiene los datos de la camada */
.node-type-camada.node-view-mode-full
.layout--onecol:has(.field--name-field-monta) {
  text-align: center;
}

/* Centrar cartel */
.node-type-camada.node-view-mode-full
.layout--onecol:has(.field--name-field-monta)
.field--name-field-photo img {
  display: block;
  margin: 0 auto 14px;
}

/* Monta y Parto centrados y compactos */
.node-type-camada.node-view-mode-full
.layout--onecol:has(.field--name-field-monta)
.field--name-field-monta,
.node-type-camada.node-view-mode-full
.layout--onecol:has(.field--name-field-monta)
.field--name-field-parto {
  display: flex !important;
  justify-content: center !important;
  align-items: baseline;
  gap: 10px;
  margin: 5px 0 !important;
}

/* Etiqueta y valor juntos */
.node-type-camada.node-view-mode-full
.layout--onecol:has(.field--name-field-monta)
.field__label,
.node-type-camada.node-view-mode-full
.layout--onecol:has(.field--name-field-monta)
.field__item {
  float: none !important;
  margin: 0 !important;
}

/* =========================
   PORTADA - ESTADÍSTICAS
   ========================= */

/* Sección de estadísticas */
.layout--fourcol-section {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

/* Cada columna */
.layout--fourcol-section > .layout__region {
  text-align: center;
  padding: 20px 15px;
}

/* Primer bloque de cada columna = número */
.layout--fourcol-section > .layout__region > .block:first-child {
  font-size: 2.6rem;
  line-height: 1;
  font-weight: 500;
  color: #d65a00;
  margin-bottom: 10px;
}

/* Segundo bloque = etiqueta */
.layout--fourcol-section > .layout__region > .block:nth-child(2) {
  font-size: 1.05rem;
  line-height: 1.3;
  color: #333;
}

/* Quitar márgenes internos excesivos */
.layout--fourcol-section .block-content,
.layout--fourcol-section .views-element-container,
.layout--fourcol-section p {
  margin: 0;
}

/* Separadores suaves entre columnas */
@media (min-width: 769px) {
  .layout--fourcol-section > .layout__region + .layout__region {
    border-left: 1px solid rgba(0, 0, 0, 0.08);
  }
}

/* Móvil */
@media (max-width: 768px) {
  .layout--fourcol-section > .layout__region {
    padding: 18px 10px;
  }

  .layout--fourcol-section > .layout__region > .block:first-child {
    font-size: 2.1rem;
  }
}
/* La antigua zona de cifras de la trayectoria ya no se usa */
.vv-trayectoria .vv-cifras {
  display: none !important;
}

/* Evitar altura sobrante en la sección de trayectoria */
.vv-trayectoria {
  min-height: 0 !important;
  height: auto !important;
  padding-bottom: 30px;
  margin-bottom: 20px;
}

/* ==========================================
   PORTADA NUEVA - TRAYECTORIA / ESTADÍSTICAS
   Node 182
   ========================================== */

/* Quitar definitivamente el espacio de la antigua zona de cifras */
article[data-history-node-id="182"] .vv-cifras {
  display: none !important;
}

article[data-history-node-id="182"] .vv-trayectoria,
article[data-history-node-id="182"] .vv-trayectoria-intro,
article[data-history-node-id="182"] .layout--onecol,
article[data-history-node-id="182"] .layout--onecol .layout__region {
  min-height: 0 !important;
  height: auto !important;
}

/* Reducimos el espacio bajo el texto de trayectoria */
article[data-history-node-id="182"] .vv-trayectoria {
  padding-bottom: 10px !important;
  margin-bottom: 10px !important;
}

article[data-history-node-id="182"] .vv-trayectoria-intro {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* Estadísticas más cerca del texto */
article[data-history-node-id="182"] .layout--fourcol-section {
  margin-top: 10px !important;
  padding-top: 20px !important;
}

/* Forzar naranja también en el 100% */
article[data-history-node-id="182"]
.layout--fourcol-section
.layout__region--fourth strong {
  color: #d65a00 !important;
}

/* =========================================================
   CÓMO EMPEZÓ TODO - NODE 11
   ========================================================= */

article[data-history-node-id="11"] > .node-header {
  display: none !important;
}

article[data-history-node-id="11"] .field--name-body {
  max-width: 1180px;
  margin: 60px auto 80px;
  padding: 0 40px;
}


/* CABECERA */

article[data-history-node-id="11"]
.field--name-body > p:first-child {
  margin: 0 0 14px;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #d66200;
}

article[data-history-node-id="11"]
.field--name-body > p:nth-child(2) {
  max-width: 900px;
  margin: 0 auto 24px;
  text-align: center;
  font-size: clamp(36px, 4vw, 52px);
  line-height: 1.12;
  font-weight: 600;
  color: #222;
}

article[data-history-node-id="11"]
.field--name-body > p:nth-child(3) {
  max-width: 850px;
  margin: 0 auto 50px;
  text-align: center;
  font-size: 19px;
  line-height: 1.7;
  color: #555;
}


/* VÍDEO */

article[data-history-node-id="11"]
.field--name-body > div {
  max-width: 900px;
  margin: 0 auto 70px;
}

article[data-history-node-id="11"]
.field--name-body video {
  display: block;
  width: 100%;
  max-width: 900px;
  height: auto;
  margin: 0 auto;
  border-radius: 12px;
  box-shadow: 0 12px 35px rgba(0,0,0,.12);
}


/* TEXTO GENERAL */

article[data-history-node-id="11"]
.field--name-body > p {
  font-size: 17px;
  line-height: 1.75;
  color: #555;
}


/* 01 / 02 / 03 */

article[data-history-node-id="11"]
.field--name-body > p:nth-of-type(4),

article[data-history-node-id="11"]
.field--name-body > p:nth-of-type(9),

article[data-history-node-id="11"]
.field--name-body > p:nth-of-type(13) {
  margin: 55px 0 12px;
  padding-top: 42px;
  border-top: 1px solid rgba(0,0,0,.10);
  font-size: 32px;
  line-height: 1;
  font-weight: 500;
  color: #d66200;
}


/* TÍTULOS DE SECCIONES */

article[data-history-node-id="11"]
.field--name-body > h2 {
  margin: 0 0 20px;
  font-size: 32px;
  line-height: 1.2;
  font-weight: 600;
  color: #222;
}


/* PÁRRAFOS DE SECCIONES */

article[data-history-node-id="11"]
.field--name-body > h2 + p {
  margin-top: 0;
}


/* BLOQUE FINAL */

article[data-history-node-id="11"]
.field--name-body > p:nth-last-of-type(2) {
  margin: 65px 0 14px;
  padding-top: 52px;
  border-top: 1px solid rgba(0,0,0,.10);
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #d66200;
}

article[data-history-node-id="11"]
.field--name-body > h2:last-of-type {
  margin-bottom: 30px;
  text-align: center;
  font-size: clamp(30px, 3vw, 42px);
}


/* BOTONES FINALES */

article[data-history-node-id="11"]
.field--name-body > p:last-child {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 0;
}

article[data-history-node-id="11"]
.field--name-body > p:last-child a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 26px;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
}

article[data-history-node-id="11"]
.field--name-body > p:last-child a:first-child {
  background: #d66200;
  color: #fff;
}

article[data-history-node-id="11"]
.field--name-body > p:last-child a:last-child {
  background: transparent;
  border: 1px solid #d66200;
  color: #d66200;
}


/* RESPONSIVE */

@media (max-width: 700px) {

  article[data-history-node-id="11"] .field--name-body {
    margin: 40px auto 60px;
    padding: 0 20px;
  }

  article[data-history-node-id="11"]
  .field--name-body > p:nth-child(2) {
    font-size: 34px;
  }

  article[data-history-node-id="11"]
  .field--name-body > h2 {
    font-size: 27px;
  }

  article[data-history-node-id="11"]
  .field--name-body > p:last-child {
    flex-direction: column;
  }

  article[data-history-node-id="11"]
  .field--name-body > p:last-child a {
    width: 100%;
  }
}

/* Ajustes finales - Cómo empezó todo */

article[data-history-node-id="11"]
.field--name-body > p:nth-child(2) {
  font-size: clamp(34px, 3.5vw, 46px);
}

article[data-history-node-id="11"]
.field--name-body > h2:last-of-type {
  font-size: clamp(28px, 2.6vw, 36px);
}

article[data-history-node-id="11"]
.field--name-body > div {
  max-width: 820px;
}

article[data-history-node-id="11"]
.field--name-body video {
  max-width: 820px;
}

/* =========================================================
   FICHAS DE PERROS - DISEÑO VILLAVERDE
   ========================================================= */

.node-type-ficha.node-view-mode-full {
  max-width: 1180px;
  margin: 40px auto 80px;
}

.node-type-ficha.node-view-mode-full > .node-header {
  display: none !important;
}

.node-type-ficha.node-view-mode-full .node-content {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

/* Tarjetas generales */
.node-type-ficha.node-view-mode-full .layout {
  background: #fffdf8;
  border: 1px solid rgba(80, 60, 35, .12);
  border-radius: 18px;
  box-shadow: 0 8px 28px rgba(60, 45, 25, .08);
  overflow: hidden;
}

/* =========================================================
   1. CABECERA
   ========================================================= */

.node-type-ficha.node-view-mode-full .layout:nth-child(1) {
  padding: 34px;
  background:
    linear-gradient(135deg, rgba(245,239,225,.97), rgba(255,253,248,.98));
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(1) .layout__region--first {
  padding: 10px 30px 10px 10px;
}

.node-type-ficha.node-view-mode-full
.field--name-field-nombre-del-perro .field-item {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 5vw, 64px);
  line-height: 1;
  font-weight: 700;
  color: #3d2f22;
}

.node-type-ficha.node-view-mode-full
.field--name-field-nombre-registro {
  margin-top: 10px;
}

.node-type-ficha.node-view-mode-full
.field--name-field-nombre-registro .field-label {
  display: none;
}

.node-type-ficha.node-view-mode-full
.field--name-field-nombre-registro .field-item {
  font-size: 18px;
  font-style: italic;
  color: #756455;
}

/* Foto principal */
.node-type-ficha.node-view-mode-full
.field--name-field-foto img {
  display: block;
  width: 100%;
  max-width: 420px;
  height: auto;
  margin: 0 auto;
  border-radius: 16px;
}

/* Estado dentro del programa */
.node-type-ficha.node-view-mode-full
.field--name-field-field-estado-programa {
  display: inline-block;
  margin-top: 18px;
  padding: 8px 16px;
  border-radius: 999px;
  background: #566b42;
  color: #fff;
}

.node-type-ficha.node-view-mode-full
.field--name-field-field-estado-programa .field-label {
  display: none;
}

.node-type-ficha.node-view-mode-full
.field--name-field-field-estado-programa .field-item {
  color: #fff;
  font-weight: 700;
}

/* Estados Villaverde */
.node-type-ficha.node-view-mode-full
.field--name-field-nacido-en-villaverde,
.node-type-ficha.node-view-mode-full
.field--name-field-reproductor,
.node-type-ficha.node-view-mode-full
.field--name-field-propiedad-de-villaverde {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  margin: 6px 8px 6px 0;
  padding: 10px 16px 10px 48px;
  border-radius: 999px;
  background: #f3ede2;
  color: #4b3b2c;
  box-sizing: border-box;
}

.node-type-ficha.node-view-mode-full
.field--name-field-nacido-en-villaverde .field__label,
.node-type-ficha.node-view-mode-full
.field--name-field-reproductor .field__label,
.node-type-ficha.node-view-mode-full
.field--name-field-propiedad-de-villaverde .field__label,
.node-type-ficha.node-view-mode-full
.field--name-field-nacido-en-villaverde .field-item,
.node-type-ficha.node-view-mode-full
.field--name-field-reproductor .field-item,
.node-type-ficha.node-view-mode-full
.field--name-field-propiedad-de-villaverde .field-item,
.node-type-ficha.node-view-mode-full
.villaverde-estado-texto {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: #4b3b2c;
}

.node-type-ficha.node-view-mode-full
.field--name-field-nacido-en-villaverde::before,
.node-type-ficha.node-view-mode-full
.field--name-field-reproductor::before,
.node-type-ficha.node-view-mode-full
.field--name-field-propiedad-de-villaverde::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 50%;
  width: 26px;
  height: 26px;
  transform: translateY(-50%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* Casa + check */
.node-type-ficha.node-view-mode-full
.field--name-field-nacido-en-villaverde::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='32' r='29' fill='none' stroke='%236b7d50' stroke-width='4'/%3E%3Cpath d='M16 31 32 18l16 13v17H38V36H26v12H16Z' fill='none' stroke='%236b7d50' stroke-width='4' stroke-linejoin='round'/%3E%3Ccircle cx='46' cy='47' r='10' fill='%236b7d50'/%3E%3Cpath d='m41 47 4 4 7-8' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* Huella + check */
.node-type-ficha.node-view-mode-full
.field--name-field-reproductor::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='32' r='29' fill='none' stroke='%236b7d50' stroke-width='4'/%3E%3Cellipse cx='24' cy='22' rx='5' ry='7' fill='%236b7d50'/%3E%3Cellipse cx='40' cy='22' rx='5' ry='7' fill='%236b7d50'/%3E%3Cellipse cx='17' cy='34' rx='5' ry='7' fill='%236b7d50'/%3E%3Cellipse cx='47' cy='34' rx='5' ry='7' fill='%236b7d50'/%3E%3Cpath d='M22 43c0-8 5-13 10-13s10 5 10 13c0 5-4 8-10 8s-10-3-10-8Z' fill='%236b7d50'/%3E%3Ccircle cx='47' cy='47' r='10' fill='%236b7d50'/%3E%3Cpath d='m42 47 4 4 7-8' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* Escudo + check */
.node-type-ficha.node-view-mode-full
.field--name-field-propiedad-de-villaverde::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='32' r='29' fill='none' stroke='%236b7d50' stroke-width='4'/%3E%3Cpath d='M32 16 46 21v11c0 10-6 17-14 21-8-4-14-11-14-21V21Z' fill='none' stroke='%236b7d50' stroke-width='4' stroke-linejoin='round'/%3E%3Ccircle cx='46' cy='47' r='10' fill='%236b7d50'/%3E%3Cpath d='m41 47 4 4 7-8' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* Ocultar badges vacíos */
.node-type-ficha.node-view-mode-full
.block:has(.field--name-field-nacido-en-villaverde .field-item:empty),
.node-type-ficha.node-view-mode-full
.block:has(.field--name-field-reproductor .field-item:empty),
.node-type-ficha.node-view-mode-full
.block:has(.field--name-field-propiedad-de-villaverde .field-item:empty) {
  display: none !important;
}

/* =========================================================
   2. DATOS
   ========================================================= */

.node-type-ficha.node-view-mode-full .layout:nth-child(2) {
  padding: 28px 34px;
}

.node-type-ficha.node-view-mode-full .layout:nth-child(2)::before {
  content: "🐾  DATOS  🐾";
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 26px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  line-height: 1.2;
  font-weight: 700;
  text-align: center;
  color: #3d2f22;
  white-space: nowrap;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(2) .layout__region {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 28px;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(2) .block {
  margin: 0;
  padding: 14px 0;
  border-bottom: 1px solid rgba(80,60,35,.10);
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(2) .field-label {
  margin-right: 5px;
  font-weight: 700;
  color: #4a3b2e;
}

/* Base de iconos */
.node-type-ficha.node-view-mode-full
.field--name-field-loe-libro-de-origenes-espa,
.node-type-ficha.node-view-mode-full
.field--name-field-adn,
.node-type-ficha.node-view-mode-full
.field--name-field-fecha-de-nacimiento,
.node-type-ficha.node-view-mode-full
.field--name-field-sexo,
.node-type-ficha.node-view-mode-full
.field--name-field-color {
  position: relative;
  padding-left: 42px;
}

.node-type-ficha.node-view-mode-full
.field--name-field-loe-libro-de-origenes-espa::before,
.node-type-ficha.node-view-mode-full
.field--name-field-adn::before,
.node-type-ficha.node-view-mode-full
.field--name-field-fecha-de-nacimiento::before,
.node-type-ficha.node-view-mode-full
.field--name-field-color::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 50%;
  width: 26px;
  height: 26px;
  transform: translateY(-50%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* LOE */
.node-type-ficha.node-view-mode-full
.field--name-field-loe-libro-de-origenes-espa::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect x='10' y='14' width='44' height='36' rx='4' fill='none' stroke='%23846a4c' stroke-width='4'/%3E%3Ccircle cx='23' cy='29' r='6' fill='none' stroke='%23846a4c' stroke-width='4'/%3E%3Cpath d='M15 43c2-6 6-9 8-9s6 3 8 9M36 25h12M36 34h12M36 43h8' fill='none' stroke='%23846a4c' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* Descarga privada integrada junto al número LOE. */
.node-type-ficha.node-view-mode-full
.field--name-field-loe-libro-de-origenes-espa {
  display: flex;
  align-items: center;
  gap: 5px;
}

.node-type-ficha.node-view-mode-full
.field--name-field-loe-libro-de-origenes-espa .villaverde-loe-download {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin-left: 5px;
  border: 1px solid rgba(132, 106, 76, .32);
  border-radius: 50%;
  color: #846a4c;
  background: #fffaf2;
  text-decoration: none;
  transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.node-type-ficha.node-view-mode-full
.field--name-field-loe-libro-de-origenes-espa .villaverde-loe-download span {
  width: 17px;
  height: 17px;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h8l4 4v16H6z' fill='none' stroke='%23846a4c' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M14 2v5h5M9 12h6M9 16h6' fill='none' stroke='%23846a4c' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
}

.node-type-ficha.node-view-mode-full
.field--name-field-loe-libro-de-origenes-espa .villaverde-loe-download:hover,
.node-type-ficha.node-view-mode-full
.field--name-field-loe-libro-de-origenes-espa .villaverde-loe-download:focus-visible {
  transform: translateY(-1px);
  background: #f6ead8;
  box-shadow: 0 4px 10px rgba(61, 47, 34, .14);
  outline: none;
}

/* ADN */
.node-type-ficha.node-view-mode-full
.field--name-field-adn::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M18 10c20 12 8 32 28 44M46 10C26 22 38 42 18 54M23 18h18M19 29h26M19 40h26M23 50h18' fill='none' stroke='%23846a4c' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* Fecha de nacimiento */
.node-type-ficha.node-view-mode-full
.field--name-field-fecha-de-nacimiento::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect x='10' y='16' width='44' height='38' rx='5' fill='none' stroke='%23846a4c' stroke-width='4'/%3E%3Cpath d='M20 10v12M44 10v12M10 27h44' fill='none' stroke='%23846a4c' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M20 36h5M31 36h5M42 36h5M20 45h5M31 45h5' stroke='%23846a4c' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* Color */
.node-type-ficha.node-view-mode-full
.field--name-field-color::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M32 10c-13 0-24 9-24 21 0 12 10 21 22 21h5c4 0 6-2 6-5 0-2-1-3-3-5-2-1-2-3-1-5 1-3 4-4 8-4h5c4 0 6-3 6-7 0-9-10-16-24-16Z' fill='none' stroke='%23846a4c' stroke-width='4'/%3E%3Ccircle cx='20' cy='27' r='3' fill='%23846a4c'/%3E%3Ccircle cx='28' cy='20' r='3' fill='%23846a4c'/%3E%3Ccircle cx='39' cy='20' r='3' fill='%23846a4c'/%3E%3Ccircle cx='46' cy='27' r='3' fill='%23846a4c'/%3E%3C/svg%3E");
}

/* Sexo dinámico */
.node-type-ficha.node-view-mode-full
.villaverde-sexo::before {
  content: none !important;
  display: none !important;
}

.node-type-ficha.node-view-mode-full
.field--name-field-sexo {
  position: relative !important;
  padding-left: 42px !important;
}

.node-type-ficha.node-view-mode-full
.field--name-field-sexo::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 4px !important;
  top: 50% !important;
  width: 26px !important;
  height: 26px !important;
  transform: translateY(-50%) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
}

.node-type-ficha.node-view-mode-full
.field--name-field-sexo:has(.sexo-macho)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='25' cy='39' r='12' fill='none' stroke='%23846a4c' stroke-width='4'/%3E%3Cpath d='M34 30 50 14M41 14h9v9' fill='none' stroke='%23846a4c' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}

.node-type-ficha.node-view-mode-full
.field--name-field-sexo:has(.sexo-hembra)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='23' r='12' fill='none' stroke='%23846a4c' stroke-width='4'/%3E%3Cpath d='M32 35v18M24 45h16' fill='none' stroke='%23846a4c' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") !important;
}

.node-type-ficha.node-view-mode-full
.villaverde-sexo {
  display: inline !important;
  position: static !important;
}

/* =========================================================
   3. PRUEBAS GENÉTICAS
   ========================================================= */

.node-type-ficha.node-view-mode-full .layout:nth-child(3) {
  padding: 28px 34px;
}

.node-type-ficha.node-view-mode-full .layout:nth-child(3)::before {
  content: "🐾  PRUEBAS GENÉTICAS  🐾";
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 26px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  line-height: 1.2;
  font-weight: 700;
  text-align: center;
  color: #3d2f22;
  white-space: nowrap;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(3) .layout__region {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 28px;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(3) .block {
  margin: 0;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(3) .block-title {
  display: none !important;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(3) .field--type-string {
  position: relative;
  min-height: 76px;
  padding: 16px 18px;
  border: 1px solid rgba(80,60,35,.08);
  border-radius: 13px;
  background: #f5f0e7;
  box-sizing: border-box;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(3)
.field--type-string .field-label {
  display: block;
  margin: 0 0 7px;
  font-size: 14px;
  line-height: 1.2;
  font-weight: 700;
  color: #6b5845;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(3)
.field--type-string .field-item {
  display: block;
  font-size: 18px;
  line-height: 1.25;
  font-weight: 700;
  color: #536a3f;
}

/* Formatter de resultados */
.node-type-ficha.node-view-mode-full
.genetica-resultado.genetica-libre {
  color: #587642 !important;
}

.node-type-ficha.node-view-mode-full
.genetica-resultado.genetica-portador {
  color: #b17719 !important;
}

.node-type-ficha.node-view-mode-full
.genetica-resultado.genetica-afectado {
  color: #a53d32 !important;
}

.genetica-resultado::before {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  margin-right: 9px;
  vertical-align: 2px;
  border-radius: 50%;
}

.genetica-resultado.genetica-libre::before {
  background-color: #587642;
}

.genetica-resultado.genetica-portador::before {
  background-color: #b17719;
}

.genetica-resultado.genetica-afectado::before {
  background-color: #a53d32;
}

/* Salud ortopédica y pruebas adicionales documentadas */
.node-type-ficha.node-view-mode-full
.layout:nth-child(3) .field--name-field-comentario {
  grid-column: 1 / -1;
  margin-top: 12px;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(3) .block:has(.field--name-field-comentario) {
  grid-column: 1 / -1;
}

.vv-tara-health {
  padding: 22px;
  border: 1px solid rgba(80,60,35,.1);
  border-radius: 15px;
  background: #fbf8f2;
}

.vv-tara-health h3 {
  margin: 0 0 17px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 23px;
  color: #3d2f22;
}

.vv-tara-health__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.vv-tara-health__grid > div {
  padding: 14px 15px;
  border-radius: 11px;
  background: #f2ede3;
}

.vv-tara-health__label,
.vv-tara-health__grid strong,
.vv-tara-health__grid small {
  display: block;
}

.vv-tara-health__label {
  margin-bottom: 6px;
  color: #6b5845;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.vv-tara-health__grid strong {
  color: #536a3f;
  font-size: 17px;
  line-height: 1.3;
}

/* Genetic result cards can include a detailed genotype after the status. */
.vv-tara-health__grid > .vv-genetic-card--free {
  border-left: 4px solid #587642;
  background: #edf3e8;
}

.vv-tara-health__grid > .vv-genetic-card--free strong {
  color: #587642;
}

.vv-tara-health__grid > .vv-genetic-card--carrier {
  border-left: 4px solid #b17719;
  background: #fbf1dd;
}

.vv-tara-health__grid > .vv-genetic-card--carrier strong {
  color: #9a6412;
}

.vv-tara-health__grid > .vv-genetic-card--affected {
  border-left: 4px solid #a53d32;
  background: #f9e9e6;
}

.vv-tara-health__grid > .vv-genetic-card--affected strong {
  color: #a53d32;
}

.vv-tara-health__grid > .vv-genetic-card--trait,
.vv-tara-health__grid > .vv-genetic-card--document {
  border-left: 4px solid #75624f;
  background: #f2ede3;
}

.vv-tara-health__grid > .vv-genetic-card--trait strong,
.vv-tara-health__grid > .vv-genetic-card--document strong {
  color: #5f4d3c;
}

.vv-tara-health__grid small {
  margin-top: 5px;
  color: #756d63;
  font-size: 13px;
  line-height: 1.35;
}

.vv-tara-health__note {
  margin: 16px 0 0;
  color: #6b645d;
  font-size: 13px;
  line-height: 1.55;
}

@media (max-width: 760px) {
  .vv-tara-health__grid {
    grid-template-columns: 1fr;
  }
}

/* Informe genético */
.node-type-ficha.node-view-mode-full
.field--name-field-informe-genetico {
  grid-column: 1 / -1;
  margin-top: 10px;
}

.node-type-ficha.node-view-mode-full
.field--name-field-informe-genetico .file-size,
.node-type-ficha.node-view-mode-full
.field--name-field-informe-genetico .file__size,
.node-type-ficha.node-view-mode-full
.field--name-field-informe-genetico
.field-item > span:not(.file) {
  display: none !important;
}

.node-type-ficha.node-view-mode-full
.field--name-field-informe-genetico a {
  display: inline-flex;
  align-items: center;
  min-height: 46px;
  padding: 0 18px;
  border: 1px solid #c85c13;
  border-radius: 9px;
  color: #c85c13;
  font-size: 0 !important;
  font-weight: 700;
  text-decoration: none;
}

.node-type-ficha.node-view-mode-full
.field--name-field-informe-genetico a::before {
  content: "Ver informe genético (PDF) →";
  font-size: 16px;
}

.node-type-ficha.node-view-mode-full
.field--name-field-informe-genetico a:hover {
  background: #f4eadc;
}

/* =========================================================
   4. GENEALOGÍA
   ========================================================= */

.node-type-ficha.node-view-mode-full
.layout:nth-child(4) {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  column-gap: 0;
  padding: 28px 34px;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(4)::before {
  grid-column: 1 / -1;
  content: "🐾  GENEALOGÍA  🐾";
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 26px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  line-height: 1.2;
  font-weight: 700;
  text-align: center;
  color: #3d2f22;
  white-space: nowrap;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(4) .layout__region--first,
.node-type-ficha.node-view-mode-full
.layout:nth-child(4) .layout__region--second {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  padding: 12px 28px 16px;
  box-sizing: border-box;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(4) .layout__region--first {
  border-right: 1px solid rgba(80,60,35,.12) !important;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(4) .layout__region--second {
  border-right: 0 !important;
}

/* Ocultar título duplicado del nodo relacionado */
.node-type-ficha.node-view-mode-full
.field--name-field-madre .node-view-mode-genealogia > .node-title,
.node-type-ficha.node-view-mode-full
.field--name-field-padre .node-view-mode-genealogia > .node-title {
  display: none !important;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-genealogia {
  position: relative;
  text-align: center;
}

.node-type-ficha.node-view-mode-full
.field--name-field-madre > .node-view-mode-genealogia::before {
  content: "MADRE";
  display: block;
  margin-bottom: 14px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
  color: #6b7d50;
}

.node-type-ficha.node-view-mode-full
.field--name-field-padre > .node-view-mode-genealogia::before {
  content: "PADRE";
  display: block;
  margin-bottom: 14px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
  color: #6b7d50;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-genealogia
.field--name-field-media-image img {
  display: block;
  width: 100%;
  max-width: 330px;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  margin: 0 auto;
  border-radius: 14px;
  transition: transform .2s ease, box-shadow .2s ease;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-genealogia
.field--name-field-nombre-del-perro {
  margin-top: 16px;
  text-align: center;
}

.node-type-ficha.node-view-mode-full
.node-type-ancestro.node-view-mode-genealogia {
  padding: 20px;
  border: 1px solid rgba(80,60,35,.12);
  border-radius: 14px;
  background: #f8f4ed;
}

.node-type-ficha.node-view-mode-full
.node-type-ancestro.node-view-mode-genealogia::after {
  content: "INFORMACIÓN DE PEDIGREE";
  display: inline-block;
  margin-top: 15px;
  padding: 5px 9px;
  border-radius: 20px;
  background: #ebe5d9;
  color: #756552;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .05em;
}

.node-type-ficha.node-view-mode-full
.node-type-ancestro.node-view-mode-genealogia
.field--name-field-nombre-del-perro .field-item {
  color: #c85c13;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  font-weight: 700;
}

.node-type-ficha.node-view-mode-full
.node-type-ancestro.node-view-mode-genealogia
.field--name-field-nombre-registro {
  margin: 5px 0 13px;
  color: #57493d;
  font-size: 15px;
  font-style: italic;
}

.node-type-ficha.node-view-mode-full
.node-type-ancestro.node-view-mode-genealogia
.field--name-field-salud-pedigree {
  margin-top: 13px;
  padding-top: 13px;
  border-top: 1px solid rgba(80,60,35,.1);
  color: #696057;
  font-size: 13px;
  line-height: 1.5;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-genealogia
.field--name-field-nombre-del-perro a {
  color: #c85c13;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  font-weight: 700;
  text-decoration: none;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-genealogia
.field--name-field-nombre-del-perro a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 5;
  cursor: pointer;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-genealogia
.field--name-field-nombre-del-perro a:hover {
  text-decoration: underline;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-genealogia:hover
.field--name-field-media-image img {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(60,45,25,.16);
}

/* =========================================================
   5. CAMADAS
   ========================================================= */

.node-type-ficha.node-view-mode-full
.layout:nth-child(5) {
  padding: 28px 34px;
}

.node-type-ficha.node-view-mode-full
.layout:nth-child(5)::before {
  content: "🐾  CAMADAS  🐾";
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 26px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  line-height: 1.2;
  font-weight: 700;
  text-align: center;
  color: #3d2f22;
  white-space: nowrap;
}

.node-type-ficha.node-view-mode-full
.field--name-field-camadas > .field-label {
  display: none;
}

.node-type-ficha.node-view-mode-full
.field--name-field-camadas > .field-items {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.node-type-ficha.node-view-mode-full
.field--name-field-camadas > .field-items > .field-item {
  width: auto !important;
  min-width: 0;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-camadas {
  position: relative;
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(80,60,35,.12);
  border-radius: 14px;
  background: #f6f0e6;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-camadas:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(60,45,25,.13);
}

.node-type-ficha.node-view-mode-full
.node-view-mode-camadas > .node-title {
  margin: 0;
  padding: 16px 18px 12px;
  text-align: center;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  line-height: 1.3;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-camadas > .node-title a {
  color: #3d2f22;
  text-decoration: none;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-camadas > .node-title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 10;
  cursor: pointer;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-camadas:hover > .node-title a {
  color: #c85c13;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-camadas .node-content {
  display: flex;
  flex-direction: column;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-camadas
.field--name-field-photo {
  margin: 0;
  overflow: hidden;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-camadas
.field--name-field-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  margin: 0;
  transition: transform .25s ease;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-camadas:hover
.field--name-field-photo img {
  transform: scale(1.015);
}

.node-type-ficha.node-view-mode-full
.node-view-mode-camadas
.field--name-field-parto {
  padding: 14px 18px 6px;
  text-align: center;
  font-size: 15px;
  font-weight: 700;
  color: #6b7d50;
}

.node-type-ficha.node-view-mode-full
.node-view-mode-camadas .node-content::after {
  content: "Ver camada →";
  display: block;
  padding: 2px 18px 18px;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  color: #c85c13;
}

/* =========================================================
   SECCIONES VACÍAS
   ========================================================= */

.node-type-ficha.node-view-mode-full
.node-content > .layout--onecol:not(:has(> .layout__region > .block)) {
  display: none !important;
}

.node-type-ficha.node-view-mode-full
.node-content > .layout:nth-of-type(3):has(.layout__region:empty),
.node-type-ficha.node-view-mode-full
.node-content > .layout:nth-of-type(5):has(.layout__region:empty) {
  display: none !important;
}

/* =========================================================
   RESPONSIVE FICHAS
   ========================================================= */

@media (min-width: 701px) {
  .node-type-ficha.node-view-mode-full
  .layout:nth-child(1) .layout__region--first {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}

@media (max-width: 1000px) {
  .node-type-ficha.node-view-mode-full
  .field--name-field-camadas > .field-items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .node-type-ficha.node-view-mode-full {
    margin: 24px auto 50px;
  }

  .node-type-ficha.node-view-mode-full .node-content {
    gap: 18px;
  }

  .node-type-ficha.node-view-mode-full .layout:nth-child(1) {
    padding: 22px;
  }

  .node-type-ficha.node-view-mode-full
  .layout:nth-child(1) .layout__region {
    width: 100%;
  }

  .node-type-ficha.node-view-mode-full
  .layout:nth-child(1) .layout__region--first {
    padding: 0;
  }

  .node-type-ficha.node-view-mode-full
  .field--name-field-nombre-del-perro .field-item {
    text-align: center;
    font-size: 42px;
  }

  .node-type-ficha.node-view-mode-full
  .field--name-field-nombre-registro {
    margin-bottom: 20px;
    text-align: center;
  }

  .node-type-ficha.node-view-mode-full
  .field--name-field-foto img {
    max-width: 310px;
  }

  .node-type-ficha.node-view-mode-full .layout:nth-child(2),
  .node-type-ficha.node-view-mode-full .layout:nth-child(3),
  .node-type-ficha.node-view-mode-full .layout:nth-child(4),
  .node-type-ficha.node-view-mode-full .layout:nth-child(5) {
    padding: 22px;
  }

  .node-type-ficha.node-view-mode-full
  .layout:nth-child(2) .layout__region,
  .node-type-ficha.node-view-mode-full
  .layout:nth-child(3) .layout__region {
    grid-template-columns: 1fr;
  }

  .node-type-ficha.node-view-mode-full
  .layout:nth-child(3) .field--type-string {
    min-height: 68px;
  }

  .node-type-ficha.node-view-mode-full
  .layout:nth-child(4) {
    display: block !important;
  }

  .node-type-ficha.node-view-mode-full
  .layout:nth-child(4) .layout__region--first,
  .node-type-ficha.node-view-mode-full
  .layout:nth-child(4) .layout__region--second {
    width: 100% !important;
    padding: 14px 0;
  }

  .node-type-ficha.node-view-mode-full
  .layout:nth-child(4) .layout__region--first {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(80,60,35,.12);
  }

  .node-type-ficha.node-view-mode-full
  .node-view-mode-genealogia
  .field--name-field-media-image img {
    max-width: 280px;
  }

  .node-type-ficha.node-view-mode-full
  .node-view-mode-genealogia
  .field--name-field-nombre-del-perro a {
    font-size: 20px;
  }

  .node-type-ficha.node-view-mode-full
  .field--name-field-camadas > .field-items {
    grid-template-columns: 1fr;
  }

  .node-type-ficha.node-view-mode-full
  .node-view-mode-camadas {
    max-width: 420px;
    margin: 0 auto;
  }
}


/* =========================================================
   CABECERAS VISUALES DE FICHA
   Línea — huella TÍTULO huella — línea
   ========================================================= */
.node-type-ficha.node-view-mode-full .layout:nth-child(2)::before,
.node-type-ficha.node-view-mode-full .layout:nth-child(3)::before,
.node-type-ficha.node-view-mode-full .layout:nth-child(4)::before,
.node-type-ficha.node-view-mode-full .layout:nth-child(5)::before {
  background:
    linear-gradient(rgba(80,60,35,.22),rgba(80,60,35,.22)) left center / calc(50% - 155px) 1px no-repeat,
    linear-gradient(rgba(80,60,35,.22),rgba(80,60,35,.22)) right center / calc(50% - 155px) 1px no-repeat;
}
.node-type-ficha.node-view-mode-full .layout:nth-child(3)::before {
  background:
    linear-gradient(rgba(80,60,35,.22),rgba(80,60,35,.22)) left center / calc(50% - 215px) 1px no-repeat,
    linear-gradient(rgba(80,60,35,.22),rgba(80,60,35,.22)) right center / calc(50% - 215px) 1px no-repeat;
}
@media (max-width:700px) {
  .node-type-ficha.node-view-mode-full .layout:nth-child(2)::before,
  .node-type-ficha.node-view-mode-full .layout:nth-child(3)::before,
  .node-type-ficha.node-view-mode-full .layout:nth-child(4)::before,
  .node-type-ficha.node-view-mode-full .layout:nth-child(5)::before {
    font-size:22px;
    white-space:normal;
    background:none;
  }
}

/* =========================================================
   CABECERAS DE FICHA - FRANJA DESTACADA
   ========================================================= */

.node-type-ficha.node-view-mode-full .layout:nth-child(2)::before,
.node-type-ficha.node-view-mode-full .layout:nth-child(3)::before,
.node-type-ficha.node-view-mode-full .layout:nth-child(4)::before,
.node-type-ficha.node-view-mode-full .layout:nth-child(5)::before {
  min-height: 58px;
  margin: 0 0 28px;
  padding: 12px 24px;
  border: 1px solid rgba(132,106,76,.14);
  border-radius: 10px;
  box-sizing: border-box;

  color: #3d2f22;

  background-color: #f3ede2;
  background-image:
    linear-gradient(rgba(132,106,76,.30),rgba(132,106,76,.30)),
    linear-gradient(rgba(132,106,76,.30),rgba(132,106,76,.30));
  background-position:
    left center,
    right center;
  background-size:
    calc(50% - 155px) 1px,
    calc(50% - 155px) 1px;
  background-repeat: no-repeat;
}

/* Más espacio central para el título largo */
.node-type-ficha.node-view-mode-full .layout:nth-child(3)::before {
  background-size:
    calc(50% - 215px) 1px,
    calc(50% - 215px) 1px;
}

@media (max-width: 700px) {
  .node-type-ficha.node-view-mode-full .layout:nth-child(2)::before,
  .node-type-ficha.node-view-mode-full .layout:nth-child(3)::before,
  .node-type-ficha.node-view-mode-full .layout:nth-child(4)::before,
  .node-type-ficha.node-view-mode-full .layout:nth-child(5)::before {
    min-height: 52px;
    padding: 10px 14px;
    border-radius: 8px;
    background-color: #f3ede2;
    background-image: none;
  }
}


/* =========================================================
   FICHA - AJUSTE FINAL DE CABECERA
   ========================================================= */

/* Más aire entre nombre y nombre de registro */
.node-type-ficha.node-view-mode-full
.field--name-field-nombre-del-perro {
  margin-bottom: 8px;
}

.node-type-ficha.node-view-mode-full
.field--name-field-nombre-registro {
  margin-top: 0;
  margin-bottom: 18px;
}

/* Estado del programa más integrado */
.node-type-ficha.node-view-mode-full
.field--name-field-field-estado-programa {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 9px;

  margin: 8px 0 12px;
  padding: 9px 16px;

  border: 1px solid rgba(86,107,66,.24);
  border-radius: 999px;

  background: #edf1e8;
  color: #566b42;
}

/* Punto de estado */
.node-type-ficha.node-view-mode-full
.field--name-field-field-estado-programa::before {
  content: "";
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 50%;
  background: #566b42;
}

.node-type-ficha.node-view-mode-full
.field--name-field-field-estado-programa .field-item {
  color: #566b42;
  font-size: 14px;
  font-weight: 700;
}

/* Badges superiores un poco más compactos */
.node-type-ficha.node-view-mode-full
.field--name-field-nacido-en-villaverde,
.node-type-ficha.node-view-mode-full
.field--name-field-reproductor,
.node-type-ficha.node-view-mode-full
.field--name-field-propiedad-de-villaverde {
  min-height: 40px;
  margin-top: 5px;
  margin-bottom: 5px;
  padding-top: 8px;
  padding-bottom: 8px;
}

/* Mejor equilibrio vertical de la columna izquierda */
@media (min-width: 701px) {
  .node-type-ficha.node-view-mode-full
  .layout:nth-child(1) .layout__region--first {
    padding-top: 18px;
    padding-bottom: 18px;
  }
}

/* Móvil */
@media (max-width: 700px) {
  .node-type-ficha.node-view-mode-full
  .field--name-field-field-estado-programa {
    margin-left: auto;
    margin-right: auto;
  }

  .node-type-ficha.node-view-mode-full
  .field--name-field-nacido-en-villaverde,
  .node-type-ficha.node-view-mode-full
  .field--name-field-reproductor,
  .node-type-ficha.node-view-mode-full
  .field--name-field-propiedad-de-villaverde {
    display: flex;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
  }
}

/* =========================================================
   HEADER - OCULTAR SLIDING SIDEBAR VACÍA
   ========================================================= */

.sliding-panel-icon {
  display: none !important;
}

/* =========================================================
   MANUEL AMPUDIA - HERO
   ========================================================= */

article[data-history-node-id="7"] > .node-header {
  display: none !important;
}

article[data-history-node-id="7"] .field--name-body {
  margin: 0;
}

.vv-manuel {
  max-width: 1180px;
  margin: 40px auto 80px;
}

.vv-manuel-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  align-items: center;
  gap: 54px;

  padding: 42px;
  border: 1px solid rgba(80,60,35,.12);
  border-radius: 22px;

  background:
    linear-gradient(
      135deg,
      rgba(245,239,225,.98),
      rgba(255,253,248,.98)
    );

  box-shadow: 0 10px 30px rgba(60,45,25,.08);
}

/* Foto protagonista */
.vv-manuel-hero__foto {
  min-width: 0;
}

.vv-manuel-hero__foto .field,
.vv-manuel-hero__foto .field-item,
.vv-manuel-hero__foto .media {
  margin: 0;
}

.vv-manuel-hero__foto img {
  display: block;
  width: 100%;
  max-width: 520px;
  height: auto;
  margin: 0 auto;
  border-radius: 18px;
  box-shadow: 0 12px 28px rgba(60,45,25,.14);
}

/* Texto */
.vv-manuel-hero__contenido {
  min-width: 0;
}

.vv-manuel-kicker {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #8a6742;
}

.vv-manuel-hero h1 {
  margin: 0 0 18px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 4vw, 56px);
  line-height: 1.05;
  font-weight: 700;
  color: #3d2f22;
}

.vv-manuel-frase {
  margin: 0 0 18px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  line-height: 1.35;
  font-style: italic;
  color: #6b7d50;
}

.vv-manuel-intro {
  max-width: 540px;
  margin: 0;
  font-size: 18px;
  line-height: 1.75;
  color: #5f544a;
}

/* Separadores con huella */
.vv-manuel-separador {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  max-width: 420px;
  margin: 12px 0 20px;
}

.vv-manuel-separador span {
  flex: 1;
  height: 1px;
  background: rgba(132,106,76,.32);
}

.vv-manuel-separador b {
  font-size: 18px;
  line-height: 1;
  font-weight: 400;
}

.vv-manuel-separador--corto {
  max-width: 300px;
  margin-top: 12px;
}

/* Tablet */
@media (max-width: 900px) {
  .vv-manuel-hero {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .vv-manuel-hero__contenido {
    text-align: center;
  }

  .vv-manuel-separador {
    margin-left: auto;
    margin-right: auto;
  }

  .vv-manuel-intro {
    margin-left: auto;
    margin-right: auto;
  }
}

/* Móvil */
@media (max-width: 700px) {
  .vv-manuel {
    margin: 24px auto 50px;
  }

  .vv-manuel-hero {
    padding: 22px;
    border-radius: 18px;
  }

  .vv-manuel-hero h1 {
    font-size: 36px;
  }

  .vv-manuel-frase {
    font-size: 21px;
  }

  .vv-manuel-intro {
    font-size: 16px;
    line-height: 1.65;
  }

  .vv-manuel-hero__foto img {
    max-width: 420px;
  }
}

/* =========================================================
   MANUEL - UNA FORMA DE ENTENDER LA CRÍA
   ========================================================= */

.vv-manuel-filosofia {
  margin-top: 34px;
  padding: 48px 46px 52px;

  background: #fffdf9;
  border: 1px solid rgba(80, 60, 35, .12);
  border-radius: 22px;
  box-shadow: 0 10px 30px rgba(60, 45, 25, .06);
}

/* Cabecera */
.vv-manuel-section-header {
  max-width: 760px;
  margin: 0 auto 38px;
  text-align: center;
}

.vv-manuel-section-header h2 {
  margin: 0;

  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.15;
  font-weight: 700;

  color: #3d2f22;
}

.vv-manuel-section-header .vv-manuel-separador {
  max-width: 300px;
  margin: 15px auto 18px;
}

.vv-manuel-section-header > p {
  max-width: 680px;
  margin: 0 auto;

  font-size: 17px;
  line-height: 1.7;
  color: #66594d;
}


/* =========================================================
   TRES VALORES
   ========================================================= */

.vv-manuel-valores {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.vv-manuel-valor {
  position: relative;

  padding: 32px 25px 30px;

  text-align: center;

  background: #f8f4ec;
  border: 1px solid rgba(80, 60, 35, .10);
  border-radius: 16px;

  transition:
    transform .2s ease,
    box-shadow .2s ease;
}

.vv-manuel-valor:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 22px rgba(60, 45, 25, .08);
}


/* Iconos */
.vv-manuel-valor__icono {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 58px;
  height: 58px;

  margin: 0 auto 19px;

  border: 1px solid rgba(107, 125, 80, .38);
  border-radius: 50%;

  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  line-height: 1;

  color: #6b7d50;
}


/* Títulos */
.vv-manuel-valor h3 {
  margin: 0 0 13px;

  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  line-height: 1.2;

  letter-spacing: .08em;
  color: #3d2f22;
}


/* Texto */
.vv-manuel-valor p {
  margin: 0;

  font-size: 15.5px;
  line-height: 1.65;

  color: #66594d;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

  .vv-manuel-filosofia {
    padding: 40px 30px 44px;
  }

  .vv-manuel-valores {
    gap: 16px;
  }

  .vv-manuel-valor {
    padding: 27px 20px;
  }
}


/* =========================================================
   MÓVIL
   ========================================================= */

@media (max-width: 700px) {

  .vv-manuel-filosofia {
    margin-top: 24px;
    padding: 32px 20px 36px;
    border-radius: 18px;
  }

  .vv-manuel-section-header {
    margin-bottom: 28px;
  }

  .vv-manuel-section-header h2 {
    font-size: 29px;
  }

  .vv-manuel-section-header > p {
    font-size: 16px;
    line-height: 1.6;
  }

  .vv-manuel-valores {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .vv-manuel-valor {
    padding: 26px 22px;
  }
}

/* =========================================================
   MANUEL - ENTREVISTA
   ========================================================= */

.vv-manuel-entrevista {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.35fr);
  gap: 34px;
  align-items: center;

  margin-top: 34px;
  padding: 42px;

  background: #f7efe3;
  border: 1px solid rgba(80,60,35,.12);
  border-radius: 22px;
  box-shadow: 0 10px 30px rgba(60,45,25,.06);
}

.vv-manuel-entrevista__texto h2 {
  margin: 0 0 16px;

  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 3vw, 40px);
  line-height: 1.15;

  color: #3d2f22;
}

.vv-manuel-entrevista__texto p {
  margin: 0 0 24px;

  font-size: 17px;
  line-height: 1.7;

  color: #66594d;
}

/* Separador pequeño */
.vv-manuel-mini-separador {
  display: flex;
  align-items: center;
  gap: 10px;

  max-width: 180px;
  margin: 0 0 16px;
}

.vv-manuel-mini-separador span {
  flex: 1;
  height: 1px;
  background: rgba(132,106,76,.32);
}

.vv-manuel-mini-separador b {
  font-size: 17px;
  line-height: 1;
  font-weight: 400;
}

/* Vídeo */
.vv-manuel-entrevista__video {
  position: relative;
  overflow: hidden;

  aspect-ratio: 16 / 9;

  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(60,45,25,.16);
}

.vv-manuel-entrevista__video iframe {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;

  border: 0;
}

/* =========================================================
   BOTONES
   ========================================================= */

.vv-manuel-boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 48px;
  padding: 0 22px;

  border-radius: 7px;

  font-size: 15px;
  font-weight: 700;

  text-decoration: none;
  transition:
    transform .2s ease,
    background .2s ease;
}

.vv-manuel-boton:hover {
  transform: translateY(-2px);
}

.vv-manuel-boton--oscuro {
  background: #5b3922;
  color: #fff;
}

.vv-manuel-boton--oscuro:hover {
  background: #6a4328;
  color: #fff;
}

.vv-manuel-boton--claro {
  border: 1px solid #8a6742;
  background: transparent;
  color: #5b3922;
}

.vv-manuel-boton--claro:hover {
  background: #f3eadf;
}

/* =========================================================
   MANUEL - CIERRE
   ========================================================= */

.vv-manuel-cierre {
  margin-top: 34px;
  padding: 50px 42px 42px;

  text-align: center;

  background:
    linear-gradient(
      135deg,
      rgba(244,236,224,.98),
      rgba(255,252,246,.98)
    );

  border: 1px solid rgba(80,60,35,.12);
  border-radius: 22px;
}

.vv-manuel-cierre blockquote {
  max-width: 850px;
  margin: 0 auto 28px;

  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(25px, 2.8vw, 36px);
  line-height: 1.35;
  font-style: italic;

  color: #4a3829;
}

.vv-manuel-cierre blockquote::before {
  content: "“";
  margin-right: 6px;
  color: #b99a72;
}

.vv-manuel-cierre blockquote::after {
  content: "”";
  margin-left: 6px;
  color: #b99a72;
}

.vv-manuel-acciones {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
}

.vv-manuel-cierre__huella {
  margin-top: 26px;
  font-size: 20px;
  color: #8a6742;
}

/* =========================================================
   RESPONSIVE ENTREVISTA + CIERRE
   ========================================================= */

@media (max-width: 850px) {
  .vv-manuel-entrevista {
    grid-template-columns: 1fr;
    padding: 34px 26px;
  }

  .vv-manuel-entrevista__texto {
    text-align: center;
  }

  .vv-manuel-mini-separador {
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 700px) {
  .vv-manuel-entrevista {
    margin-top: 24px;
    padding: 28px 20px;
    border-radius: 18px;
  }

  .vv-manuel-entrevista__texto h2 {
    font-size: 29px;
  }

  .vv-manuel-entrevista__texto p {
    font-size: 16px;
  }

  .vv-manuel-cierre {
    margin-top: 24px;
    padding: 34px 20px 30px;
    border-radius: 18px;
  }

  .vv-manuel-acciones {
    flex-direction: column;
  }

  .vv-manuel-boton {
    width: 100%;
    box-sizing: border-box;
  }
}

/* =========================================================
   MANUEL - AJUSTE FINAL MÓVIL
   ========================================================= */

@media (max-width: 700px) {

  /* Página */
  .vv-manuel {
    width: 100%;
    margin: 18px auto 42px;
  }

  /* HERO */
  .vv-manuel-hero {
    gap: 20px;
    padding: 16px;
    border-radius: 16px;
  }

  .vv-manuel-hero__foto img {
    width: 100%;
    max-width: none;
    border-radius: 14px;
  }

  .vv-manuel-kicker {
    margin-bottom: 8px;
    font-size: 11px;
    letter-spacing: .16em;
  }

  .vv-manuel-hero h1 {
    margin-bottom: 12px;
    font-size: 31px;
    line-height: 1.05;
  }

  .vv-manuel-frase {
    margin-bottom: 12px;
    font-size: 19px;
    line-height: 1.3;
  }

  .vv-manuel-intro {
    font-size: 15px;
    line-height: 1.6;
  }

  .vv-manuel-separador {
    max-width: 220px;
    margin-top: 10px;
    margin-bottom: 14px;
  }


  /* FILOSOFÍA */
  .vv-manuel-filosofia {
    margin-top: 18px;
    padding: 26px 14px 28px;
    border-radius: 16px;
  }

  .vv-manuel-section-header {
    margin-bottom: 24px;
  }

  .vv-manuel-section-header h2 {
    font-size: 27px;
    line-height: 1.1;
  }

  .vv-manuel-section-header .vv-manuel-separador {
    margin-top: 12px;
    margin-bottom: 14px;
  }

  .vv-manuel-section-header > p {
    font-size: 14.5px;
    line-height: 1.55;
  }


  /* TARJETAS */
  .vv-manuel-valores {
    gap: 12px;
  }

  .vv-manuel-valor {
    padding: 20px 16px;
    border-radius: 13px;
  }

  .vv-manuel-valor__icono {
    width: 50px;
    height: 50px;
    margin-bottom: 14px;
    font-size: 24px;
  }

  .vv-manuel-valor h3 {
    margin-bottom: 9px;
    font-size: 16px;
  }

  .vv-manuel-valor p {
    font-size: 14px;
    line-height: 1.55;
  }


  /* ENTREVISTA */
  .vv-manuel-entrevista {
    gap: 18px;
    margin-top: 18px;
    padding: 24px 14px;
    border-radius: 16px;
  }

  .vv-manuel-mini-separador {
    max-width: 150px;
    margin-bottom: 12px;
  }

  .vv-manuel-entrevista__texto h2 {
    margin-bottom: 12px;
    font-size: 27px;
  }

  .vv-manuel-entrevista__texto p {
    margin-bottom: 18px;
    font-size: 14.5px;
    line-height: 1.55;
  }

  .vv-manuel-entrevista__video {
    border-radius: 12px;
  }


  /* BOTONES */
  .vv-manuel-boton {
    min-height: 44px;
    padding: 0 15px;
    font-size: 13.5px;
  }


  /* CIERRE */
  .vv-manuel-cierre {
    margin-top: 18px;
    padding: 28px 14px 24px;
    border-radius: 16px;
  }

  .vv-manuel-cierre blockquote {
    margin-bottom: 22px;
    font-size: 23px;
    line-height: 1.3;
  }

  .vv-manuel-acciones {
    gap: 10px;
  }

  .vv-manuel-cierre__huella {
    margin-top: 20px;
  }

}

/* =========================================================
   FAMILIA VILLAVERDE · NODO 12
   ========================================================= */

.vv-familia {
  --vvf-verde: #294c3b;
  --vvf-verde-oscuro: #183328;
  --vvf-crema: #f6f0e8;
  --vvf-blanco: #fffdf9;
  --vvf-dorado: #c5a777;
  --vvf-texto: #334139;
  --vvf-gris: #68736c;
  --vvf-borde: #ded3c3;

  width: 100%;
  overflow: hidden;
  color: var(--vvf-texto);
  background: var(--vvf-blanco);
}

.vv-familia *,
.vv-familia *::before,
.vv-familia *::after {
  box-sizing: border-box;
}

.vv-familia h1,
.vv-familia h2,
.vv-familia h3,
.vv-familia p,
.vv-familia blockquote {
  margin-top: 0;
}

.vv-familia img {
  display: block;
  width: 100%;
  height: auto;
}

.vv-familia-kicker {
  margin-bottom: 16px;
  color: var(--vvf-dorado);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  line-height: 1.4;
}

.vv-familia-separador,
.vv-familia-mini-separador {
  display: flex;
  align-items: center;
  gap: 11px;
  color: var(--vvf-dorado);
}

.vv-familia-separador {
  justify-content: center;
  margin: 21px 0 25px;
}

.vv-familia-mini-separador {
  justify-content: flex-start;
  margin: 21px 0 25px;
}

.vv-familia-separador span,
.vv-familia-mini-separador span {
  display: block;
  width: 55px;
  height: 1px;
  background: var(--vvf-dorado);
}

.vv-familia-separador b,
.vv-familia-mini-separador b {
  font-size: 17px;
  line-height: 1;
}


/* Cabecera */

.vv-familia-hero {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 560px;
  background: var(--vvf-crema);
}

.vv-familia-hero__contenido {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 80px clamp(38px, 7vw, 105px);
}

.vv-familia-hero__contenido .vv-familia-separador {
  justify-content: flex-start;
  margin: 7px 0 25px;
}

.vv-familia-hero h1 {
  margin-bottom: 25px;
  color: var(--vvf-verde-oscuro);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(42px, 5vw, 68px);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1.04;
}

.vv-familia-hero__texto {
  max-width: 620px;
  margin-bottom: 31px;
  color: var(--vvf-gris);
  font-size: 17px;
  line-height: 1.8;
}

.vv-familia-hero__imagen {
  position: relative;
  display: block;
  min-height: 560px;
  overflow: hidden;
  background: var(--vvf-verde-oscuro);
}

.vv-familia-hero__imagen::after {
  position: absolute;
  inset: 0;
  content: "";
  background:
    linear-gradient(
      to top,
      rgba(15, 37, 27, .73),
      transparent 48%
    );
  pointer-events: none;
}

.vv-familia-hero__imagen img {
  width: 100%;
  height: 100%;
  min-height: 560px;
  object-fit: cover;
  transition: transform .45s ease;
}

.vv-familia-hero__imagen:hover img {
  transform: scale(1.025);
}

.vv-familia-hero__pie {
  position: absolute;
  right: 32px;
  bottom: 29px;
  left: 32px;
  z-index: 2;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.5;
  text-align: center;
  text-transform: uppercase;
}


/* Botones */

.vv-familia-acciones {
  display: flex;
  align-items: center;
  gap: 13px;
  flex-wrap: wrap;
}

.vv-familia-boton {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  border: 1px solid var(--vvf-verde);
  border-radius: 2px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .075em;
  line-height: 1.35;
  text-align: center;
  text-decoration: none !important;
  text-transform: uppercase;
  transition:
    color .2s ease,
    background-color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.vv-familia-boton:hover {
  transform: translateY(-2px);
}

.vv-familia-boton--oscuro {
  color: #fff !important;
  background: var(--vvf-verde);
}

.vv-familia-boton--oscuro:hover {
  border-color: var(--vvf-verde-oscuro);
  background: var(--vvf-verde-oscuro);
}

.vv-familia-boton--claro {
  color: var(--vvf-verde) !important;
  background: transparent;
}

.vv-familia-boton--claro:hover {
  color: #fff !important;
  background: var(--vvf-verde);
}

.vv-familia-boton--dorado {
  color: var(--vvf-verde-oscuro) !important;
  border-color: var(--vvf-dorado);
  background: var(--vvf-dorado);
}

.vv-familia-boton--dorado:hover {
  color: #fff !important;
  background: transparent;
}


/* Botón reproducir */

.vv-familia-play {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  display: flex;
  width: 62px;
  height: 62px;
  align-items: center;
  justify-content: center;
  padding-left: 4px;
  border-radius: 50%;
  color: var(--vvf-verde);
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 8px 25px rgba(0, 0, 0, .2);
  font-size: 21px;
  line-height: 1;
  transform: translate(-50%, -50%);
  transition:
    color .2s ease,
    background-color .2s ease,
    transform .2s ease;
}

a:hover > .vv-familia-play {
  color: #fff;
  background: var(--vvf-dorado);
  transform: translate(-50%, -50%) scale(1.08);
}


/* Encabezados de sección */

.vv-familia-section-header {
  max-width: 780px;
  margin: 0 auto 48px;
  text-align: center;
}

.vv-familia-section-header h2,
.vv-familia-comunidad h2 {
  margin-bottom: 16px;
  color: var(--vvf-verde-oscuro);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 4vw, 49px);
  font-weight: 400;
  letter-spacing: -.025em;
  line-height: 1.15;
}

.vv-familia-section-header > p:last-child {
  max-width: 660px;
  margin-right: auto;
  margin-bottom: 0;
  margin-left: auto;
  color: var(--vvf-gris);
  font-size: 16px;
  line-height: 1.75;
}


/* Camino compartido */

.vv-familia-camino {
  padding: 90px clamp(25px, 6vw, 95px);
  background: var(--vvf-blanco);
}

.vv-familia-etapas {
  display: grid;
  max-width: 1250px;
  margin: 0 auto;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--vvf-borde);
  background: var(--vvf-borde);
  gap: 1px;
}

.vv-familia-etapa {
  position: relative;
  min-height: 310px;
  padding: 40px 34px;
  background: var(--vvf-blanco);
}

.vv-familia-etapa__numero {
  display: block;
  margin-bottom: 19px;
  color: var(--vvf-dorado);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 38px;
  line-height: 1;
}

.vv-familia-etapa__momento {
  margin-bottom: 10px;
  color: var(--vvf-dorado);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .15em;
  line-height: 1.4;
}

.vv-familia-etapa h3 {
  margin-bottom: 16px;
  color: var(--vvf-verde-oscuro);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 27px;
  font-weight: 400;
  line-height: 1.2;
}

.vv-familia-etapa > p:last-child {
  margin-bottom: 0;
  color: var(--vvf-gris);
  font-size: 15px;
  line-height: 1.75;
}


/* Comunidad */

.vv-familia-comunidad {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--vvf-crema);
}

.vv-familia-comunidad__contenido,
.vv-familia-comunidad__frase {
  display: flex;
  min-height: 500px;
  flex-direction: column;
  justify-content: center;
  padding: 75px clamp(35px, 7vw, 105px);
}

.vv-familia-comunidad__contenido > p:not(.vv-familia-kicker) {
  max-width: 600px;
  color: var(--vvf-gris);
  font-size: 16px;
  line-height: 1.8;
}

.vv-familia-comunidad__contenido .vv-familia-boton {
  align-self: flex-start;
  margin-top: 12px;
}

.vv-familia-comunidad__frase {
  align-items: center;
  color: #fff;
  background:
    linear-gradient(rgba(22, 51, 40, .92), rgba(22, 51, 40, .92)),
    radial-gradient(circle at top right, #698272, #183328);
  text-align: center;
}

.vv-familia-comunidad__huella {
  margin-bottom: 25px;
  color: var(--vvf-dorado);
  font-size: 28px;
}

.vv-familia-comunidad__frase blockquote {
  max-width: 640px;
  margin-bottom: 0;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(28px, 3vw, 42px);
  font-style: normal;
  line-height: 1.35;
}


/* Testimonios */

.vv-familia-testimonios {
  padding: 90px clamp(25px, 6vw, 95px);
  background: var(--vvf-blanco);
}

.vv-familia-videos {
  display: grid;
  max-width: 1250px;
  margin: 0 auto;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.vv-familia-video {
  overflow: hidden;
  border: 1px solid var(--vvf-borde);
  background: #fff;
  box-shadow: 0 13px 35px rgba(28, 52, 41, .07);
}

.vv-familia-video__imagen {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--vvf-verde-oscuro);
}

.vv-familia-video__imagen::after {
  position: absolute;
  inset: 0;
  content: "";
  background: rgba(17, 42, 31, .14);
  pointer-events: none;
}

.vv-familia-video__imagen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}

.vv-familia-video__imagen:hover img {
  transform: scale(1.035);
}

.vv-familia-video__imagen .vv-familia-play {
  width: 52px;
  height: 52px;
  font-size: 18px;
}

.vv-familia-video__contenido {
  padding: 23px 24px 26px;
}

.vv-familia-video__contenido > p {
  margin-bottom: 8px;
  color: var(--vvf-dorado);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
}

.vv-familia-video__contenido h3 {
  margin-bottom: 18px;
  color: var(--vvf-verde-oscuro);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-weight: 400;
  line-height: 1.2;
}

.vv-familia-video__contenido a {
  color: var(--vvf-verde);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

.vv-familia-video__contenido a:hover {
  color: var(--vvf-dorado);
}

.vv-familia-testimonios__accion {
  margin-top: 42px;
  text-align: center;
}


/* Cierre */

.vv-familia-cierre {
  position: relative;
  padding: 88px 25px 82px;
  overflow: hidden;
  color: #fff;
  background: var(--vvf-verde-oscuro);
  text-align: center;
}

.vv-familia-cierre blockquote {
  max-width: 940px;
  margin: 0 auto 25px;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 4.5vw, 56px);
  font-style: normal;
  line-height: 1.2;
}

.vv-familia-cierre > p:not(.vv-familia-kicker) {
  max-width: 650px;
  margin: 0 auto 32px;
  color: rgba(255, 255, 255, .79);
  font-size: 16px;
  line-height: 1.75;
}

.vv-familia-cierre .vv-familia-acciones {
  position: relative;
  z-index: 2;
  justify-content: center;
}

.vv-familia-enlace {
  padding: 12px 8px;
  color: #fff !important;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none !important;
}

.vv-familia-enlace:hover {
  color: var(--vvf-dorado) !important;
}

.vv-familia-cierre__huella {
  position: absolute;
  right: -25px;
  bottom: -60px;
  color: rgba(255, 255, 255, .035);
  font-size: 230px;
  line-height: 1;
  transform: rotate(-18deg);
}


/* Tableta */

@media (max-width: 980px) {

  .vv-familia-hero {
    grid-template-columns: 1fr;
  }

  .vv-familia-hero__imagen {
    min-height: 440px;
    order: -1;
  }

  .vv-familia-hero__imagen img {
    min-height: 440px;
  }

  .vv-familia-hero__contenido {
    padding-top: 65px;
    padding-bottom: 70px;
  }

  .vv-familia-etapas {
    grid-template-columns: 1fr;
  }

  .vv-familia-etapa {
    min-height: 0;
  }

  .vv-familia-comunidad {
    grid-template-columns: 1fr;
  }

  .vv-familia-comunidad__contenido,
  .vv-familia-comunidad__frase {
    min-height: 0;
    padding-top: 70px;
    padding-bottom: 70px;
  }

  .vv-familia-videos {
    grid-template-columns: repeat(2, 1fr);
  }

}


/* Móvil */

@media (max-width: 680px) {

  .vv-familia-hero__imagen,
  .vv-familia-hero__imagen img {
    min-height: 285px;
  }

  .vv-familia-hero__contenido {
    padding: 48px 22px 55px;
  }

  .vv-familia-hero h1 {
    font-size: 38px;
  }

  .vv-familia-hero h1 br {
    display: none;
  }

  .vv-familia-hero__texto {
    font-size: 16px;
  }

  .vv-familia-hero__pie {
    right: 18px;
    bottom: 18px;
    left: 18px;
    font-size: 9px;
  }

  .vv-familia-play {
    width: 52px;
    height: 52px;
    font-size: 18px;
  }

  .vv-familia-acciones {
    align-items: stretch;
    flex-direction: column;
  }

  .vv-familia-boton {
    width: 100%;
  }

  .vv-familia-camino,
  .vv-familia-testimonios {
    padding: 62px 16px;
  }

  .vv-familia-section-header {
    margin-bottom: 35px;
  }

  .vv-familia-section-header h2,
  .vv-familia-comunidad h2 {
    font-size: 33px;
  }

  .vv-familia-etapa {
    padding: 31px 24px;
  }

  .vv-familia-etapa__numero {
    font-size: 33px;
  }

  .vv-familia-comunidad__contenido,
  .vv-familia-comunidad__frase {
    padding: 58px 22px;
  }

  .vv-familia-comunidad__frase blockquote {
    font-size: 29px;
  }

  .vv-familia-videos {
    grid-template-columns: 1fr;
  }

  .vv-familia-testimonios__accion {
    margin-top: 30px;
  }

  .vv-familia-cierre {
    padding: 67px 20px 62px;
  }

  .vv-familia-cierre blockquote {
    font-size: 34px;
  }

  .vv-familia-cierre blockquote br {
    display: none;
  }

  .vv-familia-enlace {
    text-align: center;
  }

}


/* Accesibilidad */

@media (prefers-reduced-motion: reduce) {

  .vv-familia *,
  .vv-familia *::before,
  .vv-familia *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }

}



/* Corrección cita · Familia Villaverde */
.vv-familia .vv-familia-comunidad__frase blockquote {
  margin: 0;
  padding: 0;
  border: 0;
  color: #fff;
  background: transparent;
  box-shadow: none;
}

.vv-familia .vv-familia-comunidad__frase blockquote::before {
  margin-bottom: 18px;
  color: #c5a777;
  opacity: .55;
}


/* Corrección cita final · Familia Villaverde */
.vv-familia .vv-familia-cierre blockquote {
  margin: 0 auto 25px;
  padding: 0;
  border: 0;
  color: #fff;
  background: transparent;
  box-shadow: none;
}

.vv-familia .vv-familia-cierre blockquote::before {
  display: none;
  content: none;
}

/* =========================================================
   Hogares · Ventanas del mapa
   ========================================================= */

.view-hogares .leaflet-popup-content-wrapper {
  overflow: hidden;
  border: 1px solid rgba(42, 67, 57, .12);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(24, 42, 34, .24);
}

.view-hogares .leaflet-popup-content {
  width: 270px !important;
  margin: 0;
  color: #27372f;
  font-family: inherit;
  line-height: 1.4;
}

.view-hogares .leaflet-popup-close-button {
  top: 10px !important;
  right: 10px !important;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px !important;
  height: 30px !important;
  padding: 0 !important;
  border-radius: 50%;
  color: #fff !important;
  background: rgba(30, 43, 37, .72);
  font-size: 22px !important;
  line-height: 1 !important;
  text-decoration: none;
}

.view-hogares .leaflet-popup-close-button:hover {
  color: #fff !important;
  background: #315b49;
}

.view-hogares .node-view-mode-cachorros {
  margin: 0;
  padding: 0 20px 20px;
}

.view-hogares .node-view-mode-cachorros .node-title {
  margin: 0 -20px 16px;
  padding: 20px 52px 0 20px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 30px;
  font-weight: 500;
  line-height: 1.1;
}

.view-hogares .node-view-mode-cachorros .node-title a {
  color: #315b49;
  text-decoration: none !important;
  border: 0 !important;
}

.view-hogares .node-view-mode-cachorros .node-title a:hover {
  color: #b2874f;
}

.view-hogares .node-view-mode-cachorros .field--name-field-foto {
  margin: 0 0 15px;
}

.view-hogares .node-view-mode-cachorros .field--name-field-foto img {
  display: block;
  width: 100%;
  height: 180px;
  margin: 0;
  border-radius: 10px;
  object-fit: cover;
  object-position: center;
}

.view-hogares .node-view-mode-cachorros .field--name-field-sexo,
.view-hogares .node-view-mode-cachorros .field--name-field-color {
  display: inline;
  color: #53625b;
  font-size: 14px;
}

.view-hogares .node-view-mode-cachorros .field--name-field-sexo::after {
  content: " · ";
  color: #b2874f;
}

.view-hogares .node-view-mode-cachorros .field--name-field-fecha-de-nacimiento {
  margin-top: 11px;
  padding-top: 10px;
  border-top: 1px solid #e4e7e3;
  color: #53625b;
  font-size: 14px;
}

.view-hogares .node-view-mode-cachorros
.field--name-field-fecha-de-nacimiento
.field-label {
  display: inline;
  margin-right: 5px;
  color: #27372f;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.view-hogares .node-view-mode-cachorros
.field--name-field-fecha-de-nacimiento
.field-items,
.view-hogares .node-view-mode-cachorros
.field--name-field-fecha-de-nacimiento
.field-item {
  display: inline;
}

/* Sustituto visual para las seis fichas sin fotografía. */
.view-hogares .node-view-mode-cachorros:not(:has(.field--name-field-foto img))
.node-content::before {
  content: "Villaverde de la Marina";
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 150px;
  margin-bottom: 15px;
  border-radius: 10px;
  color: #fff;
  background:
    radial-gradient(circle at 75% 20%, rgba(255, 255, 255, .14), transparent 32%),
    linear-gradient(145deg, #78907f, #315b49);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  letter-spacing: .02em;
  text-align: center;
}

/* Ajustes para móvil. */
@media (max-width: 680px) {

  .view-hogares .leaflet-popup-content {
    width: 235px !important;
  }

  .view-hogares .node-view-mode-cachorros {
    padding-right: 16px;
    padding-bottom: 17px;
    padding-left: 16px;
  }

  .view-hogares .node-view-mode-cachorros .node-title {
    margin-right: -16px;
    margin-left: -16px;
    padding-left: 16px;
    font-size: 26px;
  }

  .view-hogares .node-view-mode-cachorros .field--name-field-foto img {
    height: 155px;
  }
}
/* Cierre visible de los popups de Hogares. */
.view-hogares .leaflet-popup a.leaflet-popup-close-button {
  top: 12px !important;
  right: 12px !important;
  z-index: 20 !important;
  display: flex !important;
  visibility: visible !important;
  align-items: center;
  justify-content: center;
  width: 32px !important;
  height: 32px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50%;
  opacity: 1 !important;
  color: transparent !important;
  background: #eef2ef !important;
  font-size: 0 !important;
  text-decoration: none !important;
}

.view-hogares .leaflet-popup a.leaflet-popup-close-button::before {
  content: "×";
  display: block;
  color: #315b49;
  font-family: Arial, sans-serif;
  font-size: 25px;
  font-weight: 400;
  line-height: 1;
}

.view-hogares .leaflet-popup a.leaflet-popup-close-button:hover {
  background: #315b49 !important;
}

.view-hogares .leaflet-popup a.leaflet-popup-close-button:hover::before {
  color: #fff;
}

/* =========================================================
   Hogares · Cabecera y mapa
   ========================================================= */

.path-hogares .page-title {
  max-width: 900px;
  margin: 55px auto 15px;
  padding: 0 24px;
  color: #27372f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(40px, 5.5vw, 66px);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -.025em;
  text-align: center;
}

.view-hogares {
  padding-bottom: 70px;
}

.view-hogares .view-header {
  max-width: 820px;
  margin: 0 auto 35px;
  padding: 0 24px;
  text-align: center;
}

.vv-hogares-intro__eyebrow {
  margin: 0 0 14px;
  color: #b2874f;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.vv-hogares-intro__texto {
  max-width: 720px;
  margin: 0 auto;
  color: #68756f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 19px;
  line-height: 1.65;
}

.vv-hogares-cifras {
  display: flex;
  justify-content: center;
  margin: 30px auto 0;
}

.vv-hogares-cifra {
  min-width: 175px;
  padding: 2px 30px;
  border-right: 1px solid #dfe3df;
}

.vv-hogares-cifra:last-child {
  border-right: 0;
}

.vv-hogares-cifra strong {
  display: block;
  color: #315b49;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 32px;
  font-weight: 500;
  line-height: 1;
}

.vv-hogares-cifra span {
  display: block;
  margin-top: 7px;
  color: #68756f;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.vv-hogares-privacidad {
  display: inline-block;
  margin: 25px 0 0;
  padding: 9px 14px;
  border-radius: 20px;
  color: #65736c;
  background: #f1eee7;
  font-size: 12px;
  line-height: 1.4;
}

.view-hogares .leaflet-container {
  overflow: hidden;
  border: 1px solid #dfe3df;
  border-radius: 20px;
  box-shadow: 0 18px 45px rgba(31, 48, 40, .12);
}

@media (max-width: 680px) {

  .path-hogares .page-title {
    margin-top: 38px;
    padding: 0 18px;
    font-size: 40px;
  }

  .view-hogares .view-header {
    margin-bottom: 27px;
    padding: 0 18px;
  }

  .vv-hogares-intro__texto {
    font-size: 17px;
  }

  .vv-hogares-cifra {
    min-width: 0;
    padding: 2px 22px;
  }

  .vv-hogares-cifra strong {
    font-size: 28px;
  }

  .vv-hogares-cifra span {
    font-size: 10px;
  }

  .vv-hogares-privacidad {
    font-size: 11px;
  }

  .view-hogares {
    padding-bottom: 45px;
  }

  .view-hogares .leaflet-container {
    border-radius: 13px;
  }
}
.vv-hogares-intro__titulo {
  margin: 0 0 20px;
  color: #27372f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(40px, 5.5vw, 66px);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -.025em;
}

@media (max-width: 680px) {

  .vv-hogares-intro__titulo {
    font-size: 40px;
  }
}

/* Ocultar únicamente el zoom en móvil para no tapar las tarjetas. */
@media (max-width: 680px) {

  .view-hogares .leaflet-control-zoom {
    display: none !important;
  }
}

/* =========================================================
   CACHORROS DISPONIBLES
   ========================================================= */

.path-cachorros-disponibles .page-content {
  padding-top: 26px;
}

.path-cachorros-disponibles .region-content {
  max-width: 1220px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 22px;
  padding-left: 22px;
}

.view-cachorros-disponibles {
  --vv-brown: #5b3922;
  --vv-dark: #3d2f22;
  --vv-text: #66594d;
  --vv-green: #6b7d50;
  --vv-cream: #f7efe3;
  --vv-light: #fffdf9;

  width: 100%;
  margin: 0 auto 60px;
}

/* Evita duplicar el título que genera Drupal. */
.path-cachorros-disponibles .page-title,
.path-cachorros-disponibles h1.page-title {
  display: none;
}

/* =========================================================
   CABECERA
   ========================================================= */

.vv-cachorros-hero {
  position: relative;
  overflow: hidden;

  margin-bottom: 34px;
  padding: 58px 52px;

  text-align: center;

  background:
    radial-gradient(
      circle at 85% 15%,
      rgba(107, 125, 80, .14),
      transparent 28%
    ),
    linear-gradient(
      135deg,
      rgba(247, 239, 227, .98),
      rgba(255, 253, 249, .98)
    );

  border: 1px solid rgba(80, 60, 35, .12);
  border-radius: 22px;
  box-shadow: 0 12px 34px rgba(60, 45, 25, .07);
}

.vv-cachorros-hero::after {
  position: absolute;
  right: 28px;
  bottom: 12px;

  content: "🐾";
  font-size: 72px;
  line-height: 1;

  opacity: .07;
  transform: rotate(-14deg);
}

.vv-cachorros-kicker {
  margin: 0 0 12px;

  color: var(--vv-green);

  font-size: 12px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .2em;
}

.vv-cachorros-separador {
  display: flex;
  align-items: center;
  gap: 12px;

  width: min(290px, 70%);
  margin: 0 auto 18px;
}

.vv-cachorros-separador span {
  flex: 1;
  height: 1px;
  background: rgba(132, 106, 76, .34);
}

.vv-cachorros-separador b {
  font-size: 18px;
  line-height: 1;
  font-weight: 400;
}

.vv-cachorros-hero h1 {
  max-width: 850px;
  margin: 0 auto 20px;

  color: var(--vv-dark);

  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(36px, 4.6vw, 58px);
  line-height: 1.08;
  font-weight: 700;
}

.vv-cachorros-intro {
  max-width: 780px;
  margin: 0 auto 27px;

  color: var(--vv-text);

  font-size: 17px;
  line-height: 1.75;
}

.vv-cachorros-boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 48px;
  padding: 0 24px;

  color: #fff !important;
  background: var(--vv-brown);
  border-radius: 7px;

  font-size: 15px;
  font-weight: 700;
  text-decoration: none !important;

  transition:
    transform .2s ease,
    background .2s ease,
    box-shadow .2s ease;
}

.vv-cachorros-boton:hover {
  color: #fff !important;
  background: #6a4328;
  box-shadow: 0 8px 18px rgba(60, 45, 25, .16);
  transform: translateY(-2px);
}

/* =========================================================
   REJILLA DINÁMICA
   ========================================================= */

.view-cachorros-disponibles .view-content {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
  align-items: stretch;
}

.view-cachorros-disponibles .views-row {
  min-width: 0;
}

.view-cachorros-disponibles .node-type-ficha {
  position: relative;
  overflow: hidden;

  height: 100%;
  margin: 0;
  padding: 0 0 28px;

  background: var(--vv-light);
  border: 1px solid rgba(80, 60, 35, .12);
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(60, 45, 25, .07);

  transition:
    transform .22s ease,
    box-shadow .22s ease;
}

.view-cachorros-disponibles .node-type-ficha:hover {
  box-shadow: 0 16px 38px rgba(60, 45, 25, .12);
  transform: translateY(-4px);
}

/* Estado disponible. */
.view-cachorros-disponibles .node-type-ficha::before {
  position: absolute;
  z-index: 4;
  top: 18px;
  left: 18px;

  content: "●  Disponible";
  padding: 8px 13px;

  color: #fff;
  background: rgba(77, 101, 58, .94);
  border-radius: 999px;
  box-shadow: 0 5px 14px rgba(35, 50, 25, .22);

  font-size: 12px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .04em;
}

/* El nombre se muestra debajo de la fotografía. */
.view-cachorros-disponibles .node-title {
  margin: 24px 28px 8px;
  padding: 0;

  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(28px, 3vw, 38px);
  line-height: 1.1;
}

.view-cachorros-disponibles .node-title a {
  color: var(--vv-dark);
  text-decoration: none;
}

.view-cachorros-disponibles .node-title a:hover {
  color: var(--vv-brown);
}

/* =========================================================
   ESTRUCTURA INTERIOR
   ========================================================= */

.view-cachorros-disponibles .node-content {
  display: flex;
  flex-direction: column;
}

/* La primera composición contiene datos + fotografía. */
.view-cachorros-disponibles
.node-content > .layout--twocol-section:first-child {
  display: contents;
}

/* Fotografía primero. */
.view-cachorros-disponibles
.node-content > .layout--twocol-section:first-child
.layout__region--second {
  order: -2;
  width: 100%;
}

/* Datos técnicos después. */
.view-cachorros-disponibles
.node-content > .layout--twocol-section:first-child
.layout__region--first {
  order: 1;
  width: auto;
  margin: 0 28px;
}

/* Imagen protagonista. */
.view-cachorros-disponibles
.field--name-field-foto {
  margin: 0;
}

.view-cachorros-disponibles
.field--name-field-foto img {
  display: block;

  width: 100%;
  height: 430px;
  object-fit: cover;
  object-position: center 25%;

  border-radius: 0;
}

/* Oculta elementos técnicos o duplicados en esta View. */
.view-cachorros-disponibles
.field--name-field-nombre-del-perro,
.view-cachorros-disponibles
.field--name-field-nombre-registro,
.view-cachorros-disponibles
.field--name-field-field-geo-publica {
  display: none;
}

/* Nacido en Villaverde. */
.view-cachorros-disponibles
.field--name-field-nacido-en-villaverde {
  display: inline-flex;
  align-items: center;

  margin: 3px 0 15px;
  padding: 7px 11px;

  color: var(--vv-green);
  background: rgba(107, 125, 80, .09);
  border-radius: 999px;

  font-size: 12px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .04em;
}

/* Bloque de fecha, sexo y color. */
.view-cachorros-disponibles
.node-content > .layout--onecol:first-of-type {
  order: 2;
  margin: 4px 28px 0;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:first-of-type
.layout__region--content {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:first-of-type
.block {
  min-width: 0;
  margin: 0;
  padding: 13px 12px;

  background: #f8f4ec;
  border: 1px solid rgba(80, 60, 35, .09);
  border-radius: 11px;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:first-of-type
.field {
  display: block;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:first-of-type
.field__label {
  display: block;
  float: none;
  margin: 0 0 5px;

  color: #8a7663;

  font-size: 10px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:first-of-type
.field-item {
  color: var(--vv-dark);
  font-size: 14px;
  line-height: 1.35;
  font-weight: 700;
}

/* Oculta layouts posteriores que actualmente están vacíos. */
.view-cachorros-disponibles
.node-content > .layout:nth-of-type(n+3) {
  display: none;
}

/* Convierte el enlace del nombre en nombre + CTA. */
.view-cachorros-disponibles .node-title a::after {
  display: flex;
  align-items: center;
  justify-content: center;

  width: fit-content;
  min-height: 43px;
  margin-top: 20px;
  padding: 0 18px;

  content: "Conocer su historia →";

  color: #fff;
  background: var(--vv-brown);
  border-radius: 7px;

  font-family: Arial, sans-serif;
  font-size: 13px;
  line-height: 1;
  font-weight: 700;

  transition:
    background .2s ease,
    transform .2s ease;
}

.view-cachorros-disponibles .node-title a:hover::after {
  background: #6a4328;
  transform: translateY(-2px);
}

/* =========================================================
   ESTADO SIN RESULTADOS
   ========================================================= */

.vv-cachorros-vacio {
  max-width: 820px;
  margin: 0 auto;
  padding: 52px 36px;

  text-align: center;

  background: var(--vv-light);
  border: 1px solid rgba(80, 60, 35, .12);
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(60, 45, 25, .06);
}

.vv-cachorros-vacio__huella {
  display: block;
  margin-bottom: 15px;
  font-size: 34px;
}

.vv-cachorros-vacio h2 {
  margin: 0 0 14px;

  color: var(--vv-dark);

  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(28px, 4vw, 40px);
  line-height: 1.15;
}

.vv-cachorros-vacio p {
  max-width: 600px;
  margin: 0 auto 24px;

  color: var(--vv-text);
  font-size: 16px;
  line-height: 1.7;
}

/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {
  .view-cachorros-disponibles .view-content {
    gap: 18px;
  }

  .vv-cachorros-hero {
    padding: 46px 34px;
  }

  .view-cachorros-disponibles
  .field--name-field-foto img {
    height: 370px;
  }

  .view-cachorros-disponibles
  .node-content > .layout--onecol:first-of-type
  .layout__region--content {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   MÓVIL
   ========================================================= */

@media (max-width: 700px) {
  .path-cachorros-disponibles .page-content {
    padding-top: 16px;
  }

  .path-cachorros-disponibles .region-content {
    padding-right: 12px;
    padding-left: 12px;
  }

  .view-cachorros-disponibles {
    margin-bottom: 42px;
  }

  .vv-cachorros-hero {
    margin-bottom: 18px;
    padding: 32px 17px 34px;
    border-radius: 16px;
  }

  .vv-cachorros-hero h1 {
    margin-bottom: 15px;
    font-size: 32px;
  }

  .vv-cachorros-intro {
    margin-bottom: 22px;
    font-size: 14.5px;
    line-height: 1.65;
  }

  .vv-cachorros-boton {
    width: 100%;
    min-height: 46px;
    padding: 0 15px;
    font-size: 13.5px;
  }

  .view-cachorros-disponibles .view-content {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .view-cachorros-disponibles .node-type-ficha {
    padding-bottom: 22px;
    border-radius: 16px;
  }

  .view-cachorros-disponibles
  .field--name-field-foto img {
    height: auto;
    max-height: none;
    aspect-ratio: auto;
    object-fit: contain;
    background: #eee8df;
  }

  .view-cachorros-disponibles .node-title {
    margin: 21px 18px 7px;
    font-size: 30px;
  }

  .view-cachorros-disponibles
  .node-content > .layout--twocol-section:first-child
  .layout__region--first {
    margin-right: 18px;
    margin-left: 18px;
  }

  .view-cachorros-disponibles
  .node-content > .layout--onecol:first-of-type {
    margin-right: 18px;
    margin-left: 18px;
  }

  .view-cachorros-disponibles
  .node-content > .layout--onecol:first-of-type
  .layout__region--content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .view-cachorros-disponibles
  .node-content > .layout--onecol:first-of-type
  .block:first-child {
    grid-column: 1 / -1;
  }

  .view-cachorros-disponibles .node-title a::after {
    width: 100%;
    box-sizing: border-box;
  }

  .vv-cachorros-vacio {
    padding: 36px 18px;
    border-radius: 16px;
  }
}

/* =========================================================
   CACHORROS DISPONIBLES — CORRECCIÓN DE COMPOSICIÓN
   ========================================================= */

/* Neutraliza el ancho fijo heredado del tema. */
.path-cachorros-disponibles .page-content,
.path-cachorros-disponibles .block-region,
.path-cachorros-disponibles .region-content,
.path-cachorros-disponibles #block-villaverde_marina-content,
.path-cachorros-disponibles
#block-villaverde_marina-content > .block-content,
.path-cachorros-disponibles
.views-element-container {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
}

.path-cachorros-disponibles .region-content {
  margin-right: auto !important;
  margin-left: auto !important;
  padding-right: 22px !important;
  padding-left: 22px !important;
}

.view-cachorros-disponibles {
  width: min(100%, 1220px) !important;
  max-width: 1220px !important;
  margin-right: auto !important;
  margin-left: auto !important;
  box-sizing: border-box;
}

/* Protege la cabecera contra desbordamientos. */
.vv-cachorros-hero {
  width: 100%;
  box-sizing: border-box;
}

.vv-cachorros-hero h1,
.vv-cachorros-intro {
  overflow-wrap: anywhere;
}

/* Una tarjeta queda centrada; varias forman la rejilla. */
.view-cachorros-disponibles .view-content {
  display: grid;
  grid-template-columns:
    repeat(
      auto-fit,
      minmax(min(100%, 410px), 520px)
    );
  justify-content: center;
  gap: 26px;
}

/* El artículo controla ahora el orden de todos sus elementos. */
.view-cachorros-disponibles .node-type-ficha {
  display: flex;
  flex-direction: column;
  width: 100%;
  box-sizing: border-box;
}

/*
 * display: contents permite ordenar la imagen, nombre y datos
 * aunque Drupal los genere dentro de contenedores diferentes.
 */
.view-cachorros-disponibles .node-content {
  display: contents;
}

.view-cachorros-disponibles
.node-content > .layout--twocol-section:first-child {
  display: contents;
}

/* 1. Fotografía. */
.view-cachorros-disponibles
.node-content > .layout--twocol-section:first-child
.layout__region--second {
  order: 1;
  width: 100%;
}

/* 2. Nombre y botón. */
.view-cachorros-disponibles .node-title {
  order: 2;
  margin: 23px 26px 10px;
}

/* 3. Insignia “Nacido en Villaverde”. */
.view-cachorros-disponibles
.node-content > .layout--twocol-section:first-child
.layout__region--first {
  order: 3;
  width: auto;
  margin: 0 26px;
}

/* 4. Fecha, sexo y color. */
.view-cachorros-disponibles
.node-content > .layout--onecol:first-of-type {
  order: 4;
  margin: 4px 26px 0;
}

/* Fotografía sin huecos ni deformación. */
.view-cachorros-disponibles
.field--name-field-foto,
.view-cachorros-disponibles
.field--name-field-foto .field-item,
.view-cachorros-disponibles
.field--name-field-foto
.node-taxonomy-container {
  width: 100%;
  margin: 0;
}

.view-cachorros-disponibles
.field--name-field-foto img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 338 / 480;
  object-fit: cover;
  object-position: center;
}

/* El nombre queda claramente separado del botón. */
.view-cachorros-disponibles .node-title a {
  display: block;
}

.view-cachorros-disponibles .node-title a::after {
  width: 100%;
  min-height: 45px;
  margin-top: 17px;
  box-sizing: border-box;
}

/* Estado sobre la fotografía. */
.view-cachorros-disponibles .node-type-ficha::before {
  top: 17px;
  left: 17px;
}

/* =========================================================
   TABLET Y MÓVIL
   ========================================================= */

@media (max-width: 700px) {
  .path-cachorros-disponibles .region-content {
    padding-right: 11px !important;
    padding-left: 11px !important;
  }

  .vv-cachorros-hero {
    padding: 30px 16px 32px;
  }

  .vv-cachorros-hero h1 {
    font-size: 30px;
    line-height: 1.08;
  }

  .view-cachorros-disponibles .view-content {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .view-cachorros-disponibles .node-title {
    margin: 20px 17px 9px;
  }

  .view-cachorros-disponibles
  .node-content > .layout--twocol-section:first-child
  .layout__region--first,
  .view-cachorros-disponibles
  .node-content > .layout--onecol:first-of-type {
    margin-right: 17px;
    margin-left: 17px;
  }
}

/* =========================================================
   CACHORROS — COLOCAR LOS DATOS DESPUÉS DEL NOMBRE
   ========================================================= */

/*
 * El segundo layout generado por Drupal contiene:
 * fecha de nacimiento, sexo y color.
 */
.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2) {
  display: block !important;
  order: 4;

  margin: 5px 26px 0;
}

/* Los tres datos se presentan como pequeñas fichas. */
.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.layout__region--content {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.block {
  min-width: 0;
  margin: 0;
  padding: 13px 11px;

  background: #f8f4ec;
  border: 1px solid rgba(80, 60, 35, .09);
  border-radius: 11px;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.field {
  display: block;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.field__label {
  display: block;
  float: none;
  margin: 0 0 5px;

  color: #8a7663;

  font-size: 10px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.field-item {
  display: block;
  float: none;

  color: #3d2f22;

  font-size: 14px;
  line-height: 1.35;
  font-weight: 700;
}

/* Impide que reglas antiguas de float alteren cada campo. */
.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.field::after {
  display: table;
  clear: both;
  content: "";
}

/* El distintivo de origen queda antes de los datos. */
.view-cachorros-disponibles
.node-content > .layout--twocol-section:first-child
.layout__region--first {
  order: 3;
}

/* =========================================================
   MÓVIL
   ========================================================= */

@media (max-width: 700px) {
  .view-cachorros-disponibles
  .node-content > .layout--onecol:nth-of-type(2) {
    margin-right: 17px;
    margin-left: 17px;
  }

  .view-cachorros-disponibles
  .node-content > .layout--onecol:nth-of-type(2)
  .layout__region--content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /* La fecha utiliza todo el ancho. */
  .view-cachorros-disponibles
  .node-content > .layout--onecol:nth-of-type(2)
  .block:first-child {
    grid-column: 1 / -1;
  }
}

/* =========================================================
   CAMADA — RECUPERAR ENCUADRES
   ========================================================= */

/* Contenedor general. */
.page-type-camada
.node-type-camada.node-view-mode-full {
  width: min(100%, 1160px);
  margin: 0 auto;
}

/* =========================================================
   ENCUADRE DE LA CABECERA
   ========================================================= */

.vv-camada-hero {
  position: relative;
  overflow: hidden;

  width: 100%;
  margin: 0;
  padding: 34px 28px;

  text-align: center;

  background:
    radial-gradient(
      circle at 88% 18%,
      rgba(107, 125, 80, .13),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #f5eee4,
      #fffdf9
    );

  border: 1px solid rgba(80, 60, 35, .13);
  border-radius: 19px;
  box-shadow: 0 10px 28px rgba(60, 45, 25, .06);
  box-sizing: border-box;
}

.vv-camada-hero::after {
  position: absolute;
  right: 24px;
  bottom: 11px;

  content: "🐾";
  font-size: 52px;
  line-height: 1;

  opacity: .07;
  transform: rotate(-14deg);
}

.vv-camada-hero__kicker {
  margin: 0 0 9px;

  color: #6b7d50;

  font-size: 11px;
  font-weight: 800;
  letter-spacing: .17em;
}

.vv-camada-separador {
  display: flex;
  align-items: center;
  gap: 10px;

  width: 210px;
  margin: 0 auto 13px;
}

.vv-camada-separador span {
  flex: 1;
  height: 1px;
  background: rgba(132, 106, 76, .34);
}

.vv-camada-separador b {
  font-size: 15px;
  line-height: 1;
}

.vv-camada-hero h1 {
  margin: 0 0 11px;

  color: #3d2f22;

  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1.05;
}

.vv-camada-hero__intro {
  max-width: 650px;
  margin: 0 auto 17px;

  color: #675b50;
  font-size: 14.5px;
  line-height: 1.55;
}

.vv-camada-estado {
  display: inline-flex;
  align-items: center;
  gap: 7px;

  padding: 7px 12px;

  color: #fff;
  border-radius: 999px;

  font-size: 10.5px;
  font-weight: 800;
}

.vv-camada-estado::before {
  content: "●";
}

.vv-camada-estado--abierto {
  background: #6b7d50;
}

.vv-camada-estado--cerrado {
  background: #8c695b;
}

/* =========================================================
   ENCUADRE DEL CARTEL
   ========================================================= */

.page-type-camada
.node-type-camada > .node-content >
.layout:nth-of-type(1) {
  width: min(100%, 760px);
  margin: 0 auto;
  padding: 16px;

  background: #fffdf9;
  border: 1px solid rgba(80, 60, 35, .13);
  border-radius: 19px;
  box-shadow: 0 10px 28px rgba(60, 45, 25, .06);
  box-sizing: border-box;
}

.page-type-camada
.node-type-camada > .node-content >
.layout:nth-of-type(1)
.layout__region--content {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.page-type-camada
.node-type-camada > .node-content >
.layout:nth-of-type(1)
.block {
  min-width: 0;
  margin: 0;
}

.page-type-camada
.node-type-camada > .node-content >
.layout:nth-of-type(1)
.block:first-child {
  grid-column: 1 / -1;
}

.page-type-camada
.field--name-field-photo img {
  display: block;

  width: 100%;
  max-height: 720px;
  object-fit: contain;

  background: #eee7dc;
  border-radius: 13px;
}

/* Monta y parto dentro de pequeños recuadros. */
.page-type-camada
.field--name-field-monta,
.page-type-camada
.field--name-field-parto {
  display: block;

  padding: 13px 12px;

  text-align: center;

  background: #f8f4ec;
  border: 1px solid rgba(80, 60, 35, .10);
  border-radius: 9px;
  box-sizing: border-box;
}

.page-type-camada
.field--name-field-monta .field__label,
.page-type-camada
.field--name-field-parto .field__label {
  display: block;
  float: none;
  margin-bottom: 4px;

  color: #8b7866;

  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.page-type-camada
.field--name-field-monta .field-item,
.page-type-camada
.field--name-field-parto .field-item {
  display: block;
  float: none;

  color: #3d2f22;
  font-size: 13px;
  font-weight: 700;
}

/* =========================================================
   MÓVIL
   ========================================================= */

@media (max-width: 650px) {
  .vv-camada-hero {
    padding: 27px 15px;
    border-radius: 15px;
  }

  .page-type-camada
  .node-type-camada > .node-content >
  .layout:nth-of-type(1) {
    padding: 10px;
    border-radius: 15px;
  }

  .page-type-camada
  .node-type-camada > .node-content >
  .layout:nth-of-type(1)
  .layout__region--content {
    grid-template-columns: 1fr;
  }

  .page-type-camada
  .node-type-camada > .node-content >
  .layout:nth-of-type(1)
  .block:first-child {
    grid-column: auto;
  }
}

/* =========================================================
   CAMADA — CENTRAR UNA ÚNICA FECHA
   ========================================================= */

/*
 * Si después de la fotografía solo existe un bloque de fecha,
 * este ocupa ambas columnas y se centra.
 */
.page-type-camada
.node-type-camada > .node-content >
.layout:nth-of-type(1)
.layout__region--content
.block:nth-child(2):last-child {
  grid-column: 1 / -1;

  width: min(100%, 360px);
  justify-self: center;
}

/*
 * Alternativa robusta para Layout Builder:
 * centra Monta cuando no existe Parto.
 */
.page-type-camada
.node-type-camada > .node-content >
.layout:nth-of-type(1)
.layout__region--content:not(
  :has(.field--name-field-parto)
)
.block:has(.field--name-field-monta) {
  grid-column: 1 / -1;

  width: min(100%, 360px);
  justify-self: center;
}

/* Centra Parto si fuera la única fecha existente. */
.page-type-camada
.node-type-camada > .node-content >
.layout:nth-of-type(1)
.layout__region--content:not(
  :has(.field--name-field-monta)
)
.block:has(.field--name-field-parto) {
  grid-column: 1 / -1;

  width: min(100%, 360px);
  justify-self: center;
}

/* =========================================================
   CAMADA — TARJETA FINAL DE RESERVAS CERRADAS
   ========================================================= */

.page-type-camada
article.node-type-camada
.vv-reservas.vv-reservas--cerradas {
  display: block !important;

  width: min(100%, 850px) !important;
  margin: 38px auto 0 !important;
  padding: 36px 30px !important;

  text-align: center !important;

  background:
    radial-gradient(
      circle at 90% 12%,
      rgba(107, 125, 80, .12),
      transparent 29%
    ),
    linear-gradient(
      135deg,
      #f5eee4,
      #fffdf9
    ) !important;

  border:
    1px solid rgba(80, 60, 35, .13) !important;
  border-radius: 18px !important;
  box-shadow:
    0 10px 28px rgba(60, 45, 25, .06) !important;

  box-sizing: border-box !important;
}

.page-type-camada
article.node-type-camada
.vv-reservas--cerradas
.vv-reservas__kicker {
  margin: 0 0 11px !important;

  color: #8c695b !important;

  font-size: 11px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  letter-spacing: .17em !important;
}

.page-type-camada
article.node-type-camada
.vv-reservas--cerradas h2 {
  margin: 0 0 12px !important;

  color: #3d2f22 !important;

  font-family:
    Georgia,
    "Times New Roman",
    serif !important;
  font-size: clamp(28px, 3.5vw, 39px) !important;
  line-height: 1.15 !important;
}

.page-type-camada
article.node-type-camada
.vv-reservas--cerradas p:not(
  .vv-reservas__kicker
) {
  max-width: 620px !important;
  margin: 0 auto !important;

  color: #675b50 !important;

  font-size: 14.5px !important;
  line-height: 1.6 !important;
}

.page-type-camada
article.node-type-camada
.vv-reservas--cerradas
.vv-reservas__boton {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  min-height: 46px !important;
  margin: 21px 0 0 !important;
  padding: 0 22px !important;

  color: #fff !important;
  background: #5b3922 !important;
  border: 0 !important;
  border-radius: 7px !important;

  font-size: 13px !important;
  font-weight: 800 !important;
  text-decoration: none !important;

  transition:
    background .2s ease,
    transform .2s ease;
}

.page-type-camada
article.node-type-camada
.vv-reservas--cerradas
.vv-reservas__boton:hover {
  color: #fff !important;
  background: #6a4328 !important;
  transform: translateY(-2px);
}

@media (max-width: 650px) {
  .page-type-camada
  article.node-type-camada
  .vv-reservas.vv-reservas--cerradas {
    margin-top: 25px !important;
    padding: 28px 16px !important;
    border-radius: 15px !important;
  }

  .page-type-camada
  article.node-type-camada
  .vv-reservas--cerradas
  .vv-reservas__boton {
    width: 100% !important;
    box-sizing: border-box !important;
  }
}
.vv-camada-estado--nacida {
  background: #6b7d50;
}

/* ===== Listados de camadas: línea visual común ===== */
.camadas-listado{--vv-brown:#5b3922;--vv-dark:#3d2f22;--vv-text:#514b45;--vv-green:#6b7d50;width:min(100%,1220px);margin-right:auto;margin-left:auto;box-sizing:border-box}
.camadas-listado .view-header .vv-cachorros-hero{margin-bottom:34px}
.camadas-listado .view-header .vv-cachorros-hero h1{color:var(--vv-dark);margin-bottom:20px}
.camadas-listado .views-view-responsive-grid{gap:28px!important;row-gap:32px!important;align-items:stretch}
.camadas-listado .view-content>h3{display:flex;align-items:center;gap:14px;margin:42px 0 18px;color:var(--vv-dark);font-family:Georgia,"Times New Roman",serif;font-size:clamp(27px,3vw,36px);line-height:1.1}
.camadas-listado .view-content>h3:after{flex:1;height:1px;content:"";background:linear-gradient(90deg,rgba(132,106,76,.38),transparent)}
.camadas-listado .views-view-responsive-grid__item{overflow:hidden;height:100%;padding:0;background:#fff;border:1px solid rgba(80,60,35,.12);border-radius:20px;box-shadow:0 12px 30px rgba(60,45,25,.09);text-align:center;transition:transform .22s ease,box-shadow .22s ease}
.camadas-listado .views-view-responsive-grid__item:hover{box-shadow:0 17px 38px rgba(60,45,25,.14);transform:translateY(-4px)}
.camadas-listado .views-view-responsive-grid__item-inner{display:flex;flex-direction:column;height:100%}
.camadas-listado .views-field-nothing{padding:24px 22px 0;font-family:Georgia,"Times New Roman",serif;font-size:23px;line-height:1.2;font-weight:700}
.camadas-listado .views-field-nothing a{color:var(--vv-dark);text-decoration:none}.camadas-listado .views-field-nothing a:hover{color:var(--vv-brown)}
.camadas-listado .vdlm-cruce{color:var(--vv-green);font-weight:400}
.camadas-listado .views-field-field-monta,.camadas-listado .views-field-field-parto{min-height:22px;margin:9px 0 0;padding:0 22px;color:#6d6a64;font-size:14px;line-height:1.5}
.camadas-listado .views-field-field-photo{margin:19px 0 0}.camadas-listado .views-field-field-photo a,.camadas-listado .views-field-field-photo img{display:block;width:100%}
.camadas-listado .views-field-field-photo img{height:auto;aspect-ratio:auto;margin:0!important;object-fit:contain;object-position:center;background:#f7f3eb}
.camadas-listado .views-field-field-cachorros{flex:1;margin:0;padding:18px 22px 22px;color:#65615b;background:rgba(247,239,227,.48);border-top:1px solid rgba(80,60,35,.08);font-size:14px;line-height:1.65}
.camadas-listado .views-field-field-cachorros a{color:var(--vv-brown);font-weight:600;text-decoration:none}.camadas-listado .views-field-field-cachorros a:hover{text-decoration:underline}
.camadas-programadas .views-view-responsive-grid__item{padding-bottom:0}
@media(max-width:700px){.camadas-listado{padding-right:11px;padding-left:11px}.camadas-listado .view-header .vv-cachorros-hero{padding:30px 16px 32px}.camadas-listado .views-view-responsive-grid{grid-template-columns:minmax(0,1fr)!important;gap:18px!important}.camadas-listado .views-field-nothing{padding:21px 17px 0;font-size:21px}.camadas-listado .views-field-field-cachorros{padding:16px 17px 19px}}

/* Cuatro tarjetas por fila y filas incompletas centradas. */
.camadas-listado .views-view-responsive-grid {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px 20px !important;
}

.camadas-listado .views-view-responsive-grid__item {
  flex: 0 1 calc((100% - 60px) / 4);
  width: calc((100% - 60px) / 4);
  max-width: 290px;
  min-width: 0;
}

.view-cachorros-disponibles .view-content {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px 20px;
}

.view-cachorros-disponibles .view-content > .views-row {
  flex: 0 1 calc((100% - 60px) / 4);
  width: calc((100% - 60px) / 4);
  max-width: 290px;
  min-width: 0;
}

.view-cachorros-disponibles .views-row.vv-puppy-card-link {
  cursor: pointer;
}

.view-cachorros-disponibles .views-row.vv-puppy-card-link:focus-visible {
  outline: 3px solid #6b7d50;
  outline-offset: 5px;
  border-radius: 20px;
}

/* La ficha completa abre el cachorro; los enlaces internos conservan su destino. */
.view-cachorros-disponibles .view-content > .views-row {
  position: relative;
  cursor: pointer;
}

.view-cachorros-disponibles .views-row > article > .node-title a::after {
  position: absolute;
  z-index: 4;
  inset: 0;
  content: "";
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 20px;
}

.view-cachorros-disponibles .views-row .node-content a,
.view-cachorros-disponibles .views-row .contextual {
  position: relative;
  z-index: 5;
}

.view-cachorros-disponibles .views-row > article > .node-title a:focus-visible::after {
  outline: 3px solid #6b7d50;
  outline-offset: 5px;
}

/* Fecha de nacimiento compacta y etiqueta adaptada al sexo. */
.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.layout__region--content {
  grid-template-columns: minmax(82px, 1.35fr) repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.field--name-field-fecha-de-nacimiento .field__label {
  font-size: 0;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.field--name-field-fecha-de-nacimiento .field__label::after {
  content: "NACIDO";
  font-size: 10px;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.layout__region--content:has(.sexo-hembra)
.field--name-field-fecha-de-nacimiento .field__label::after {
  content: "NACIDA";
}

.view-cachorros-disponibles
.field--name-field-fecha-de-nacimiento time {
  white-space: nowrap;
  font-size: 13px;
}

@media (max-width: 700px) {
  .view-cachorros-disponibles
  .node-content > .layout--onecol:nth-of-type(2)
  .layout__region--content {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .view-cachorros-disponibles
  .node-content > .layout--onecol:nth-of-type(2)
  .block:first-child {
    grid-column: 1 / -1;
  }
}

/* Holgura visual para que la fotografía no termine pegada al borde. */
.camadas-listado .views-field-field-photo {
  overflow: hidden;
  margin: 19px 14px 16px;
  border-radius: 12px;
}

.camadas-listado .views-field-field-cachorros:has(.field-content:empty) {
  display: none;
}

.camadas-listado .views-field-field-cachorros:not(:has(.field-content:empty)) {
  margin-top: 0;
}

@media (max-width: 1000px) {
  .camadas-listado .views-view-responsive-grid__item,
  .view-cachorros-disponibles .view-content > .views-row {
    flex-basis: calc((100% - 20px) / 2);
    width: calc((100% - 20px) / 2);
    max-width: 430px;
  }
}

@media (max-width: 700px) {
  .camadas-listado .views-view-responsive-grid,
  .view-cachorros-disponibles .view-content {
    gap: 18px !important;
  }

  .camadas-listado .views-view-responsive-grid__item,
  .view-cachorros-disponibles .view-content > .views-row {
    flex-basis: min(100%, 430px);
    width: min(100%, 430px);
    max-width: 430px;
  }

  .camadas-listado .views-field-field-photo {
    margin-right: 11px;
    margin-left: 11px;
  }
}

/* Ajuste final de los datos en las tarjetas de cachorros. */
.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2) {
  margin-right: 14px;
  margin-left: 14px;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.layout__region--content {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.block {
  padding-right: 9px;
  padding-left: 9px;
}

.view-cachorros-disponibles
.node-content > .layout--onecol:nth-of-type(2)
.block:first-child {
  grid-column: 1 / -1;
}

.view-cachorros-disponibles
.field--name-field-fecha-de-nacimiento time {
  white-space: nowrap;
  font-size: 13px;
}

.view-cachorros-disponibles
.field--name-field-color .field-item {
  white-space: nowrap;
  font-size: 12px;
}

@media (max-width: 700px) {
  .view-cachorros-disponibles
  .node-content > .layout--onecol:nth-of-type(2) {
    margin-right: 17px;
    margin-left: 17px;
  }
}

/* =========================================================
   INSTALACIONES
   ========================================================= */
article[data-history-node-id="10"] {
  --vvi-brown: #5b3922;
  --vvi-dark: #3d2f22;
  --vvi-green: #6b7d50;
  width: min(100%, 1220px);
  margin: 0 auto;
}

article[data-history-node-id="10"] .node-links-container {
  display: none;
}

.vv-instalaciones-hero {
  padding: 66px 28px 70px;
  text-align: center;
  background: #f7f1e7;
  border: 1px solid rgba(91, 57, 34, .12);
  border-radius: 28px;
  box-shadow: 0 18px 45px rgba(61, 47, 34, .08);
}

.vv-instalaciones-kicker,
.vv-instalacion-kicker {
  margin: 0;
  color: var(--vvi-green);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .2em;
}

.vv-instalaciones-separador {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 250px;
  margin: 17px auto 27px;
  color: var(--vvi-brown);
}

.vv-instalaciones-separador span {
  flex: 1;
  height: 1px;
  background: rgba(91, 57, 34, .28);
}

.vv-instalaciones-hero h1 {
  max-width: 850px;
  margin: 0 auto 22px;
  color: var(--vvi-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(42px, 5.4vw, 72px);
  line-height: 1.02;
}

.vv-instalaciones-hero > p:last-child {
  max-width: 800px;
  margin: 0 auto;
  color: #5c5650;
  font-size: 18px;
  line-height: 1.75;
}

.vv-instalaciones-etapas {
  display: grid;
  gap: 30px;
  margin-top: 34px;
}

.vv-instalacion-etapa {
  display: grid;
  overflow: hidden;
  grid-template-columns: minmax(330px, .8fr) minmax(0, 1.2fr);
  min-height: 430px;
  background: #fff;
  border: 1px solid rgba(91, 57, 34, .12);
  border-radius: 24px;
  box-shadow: 0 14px 36px rgba(61, 47, 34, .08);
}

.vv-instalacion-etapa:nth-child(even) .vv-instalacion-texto {
  order: 2;
}

.vv-instalacion-etapa:nth-child(even) {
  grid-template-columns: minmax(0, 1.2fr) minmax(330px, .8fr);
}

.vv-instalacion-etapa:nth-child(even) .vv-instalacion-video {
  order: 1;
}

.vv-instalacion-texto {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 48px 42px;
  background: linear-gradient(145deg, #fbf8f2, #f5eee3);
}

.vv-instalacion-numero {
  position: absolute;
  top: 24px;
  right: 28px;
  color: rgba(91, 57, 34, .1);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 68px;
  font-weight: 700;
  line-height: 1;
}

.vv-instalacion-texto h2 {
  position: relative;
  margin: 15px 0 19px;
  color: var(--vvi-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(31px, 3.5vw, 46px);
  line-height: 1.08;
}

.vv-instalacion-texto > p:last-child {
  position: relative;
  margin: 0;
  color: #625c55;
  font-size: 16px;
  line-height: 1.72;
}

.vv-instalacion-video {
  min-width: 0;
  min-height: 430px;
  background: #211a15;
}

.vv-instalacion-video video {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 430px;
  max-height: 600px;
  margin: 0;
  background: #211a15;
  object-fit: contain;
}

.vv-instalaciones-cierre {
  margin-top: 38px;
  padding: 54px 24px;
  color: #fff;
  background: linear-gradient(135deg, #4a2e1d, #6a452b);
  border-radius: 24px;
  text-align: center;
  box-shadow: 0 16px 38px rgba(61, 47, 34, .16);
}

.vv-instalaciones-cierre p {
  margin: 0 0 8px;
  color: #e7d7c6;
  font-size: 14px;
  letter-spacing: .05em;
}

.vv-instalaciones-cierre h2 {
  margin: 0 0 25px;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(29px, 3.5vw, 43px);
}

.vv-instalaciones-cierre a {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 0 21px;
  color: var(--vvi-brown);
  background: #fff;
  border-radius: 11px;
  font-weight: 800;
  text-decoration: none;
}

@media (max-width: 900px) {
  .vv-instalacion-etapa,
  .vv-instalacion-etapa:nth-child(even) {
    grid-template-columns: 1fr;
  }

  .vv-instalacion-etapa .vv-instalacion-texto,
  .vv-instalacion-etapa:nth-child(even) .vv-instalacion-texto {
    order: 1;
  }

  .vv-instalacion-etapa .vv-instalacion-video,
  .vv-instalacion-etapa:nth-child(even) .vv-instalacion-video {
    order: 2;
  }

  .vv-instalacion-video,
  .vv-instalacion-video video {
    min-height: 390px;
  }
}

@media (max-width: 600px) {
  article[data-history-node-id="10"] {
    padding: 0 11px;
    box-sizing: border-box;
  }

  .vv-instalaciones-hero {
    padding: 42px 18px 46px;
    border-radius: 20px;
  }

  .vv-instalaciones-hero h1 {
    font-size: 39px;
  }

  .vv-instalaciones-hero > p:last-child {
    font-size: 16px;
  }

  .vv-instalacion-etapa {
    border-radius: 18px;
  }

  .vv-instalacion-texto {
    padding: 42px 23px 32px;
  }

  .vv-instalacion-numero {
    top: 18px;
    right: 20px;
    font-size: 54px;
  }

  .vv-instalacion-video,
  .vv-instalacion-video video {
    min-height: 260px;
  }
}

/* =========================================================
   HISTORIA DEL PASTOR AUSTRALIANO
   ========================================================= */
article[data-history-node-id="5"] {
  --vvh-brown: #5b3922;
  --vvh-dark: #3d2f22;
  --vvh-green: #6b7d50;
  width: min(100%, 1220px);
  margin: 0 auto;
}

.vv-historia-hero {
  padding: 70px 34px 76px;
  text-align: center;
  background: #f7f1e7;
  border: 1px solid rgba(91, 57, 34, .12);
  border-radius: 28px;
  box-shadow: 0 18px 45px rgba(61, 47, 34, .08);
}

.vv-historia-kicker {
  margin: 0;
  color: var(--vvh-green);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .2em;
}

.vv-historia-separador {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 250px;
  margin: 17px auto 27px;
  color: var(--vvh-brown);
}

.vv-historia-separador span {
  flex: 1;
  height: 1px;
  background: rgba(91, 57, 34, .28);
}

.vv-historia-hero h1 {
  max-width: 960px;
  margin: 0 auto 24px;
  color: var(--vvh-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(44px, 5.6vw, 76px);
  line-height: 1.01;
}

.vv-historia-hero > p:last-child {
  max-width: 850px;
  margin: 0 auto;
  color: #5c5650;
  font-size: 18px;
  line-height: 1.75;
}

.vv-historia-foto {
  position: relative;
  overflow: hidden;
  margin: 34px;
  background: #f0e8dc;
  border: 1px solid rgba(91, 57, 34, .12);
  border-radius: 24px;
  box-shadow: 0 18px 42px rgba(61, 47, 34, .11);
}

.vv-historia-foto img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 8.2;
  object-fit: cover;
}

.vv-historia-foto figcaption {
  padding: 17px 22px 19px;
  color: #625a52;
  background: #fff;
  font-size: 14px;
  line-height: 1.55;
}

.vv-historia-foto figcaption strong {
  color: var(--vvh-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
}

.vv-historia-foto-principal {
  margin-top: 34px;
  margin-bottom: 72px;
}

.vv-historia-origen {
  display: grid;
  grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
  gap: 70px;
  margin: 72px 0 34px;
  padding: 0 34px;
}

.vv-historia-origen h2,
.vv-historia-seccion-titulo h2,
.vv-historia-trabajo h2,
.vv-historia-hoy h2 {
  margin: 13px 0 0;
  color: var(--vvh-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(35px, 4vw, 52px);
  line-height: 1.06;
}

.vv-historia-origen-texto p,
.vv-historia-trabajo-texto > p,
.vv-historia-hoy > p:last-of-type {
  margin: 0 0 17px;
  color: #5f5952;
  font-size: 17px;
  line-height: 1.78;
}

.vv-historia-nombre {
  margin: 0 34px 76px;
  padding: 29px 32px;
  color: #eee3d7;
  background: linear-gradient(135deg, #493020, #67452d);
  border-radius: 18px;
  box-shadow: 0 14px 34px rgba(61, 47, 34, .14);
}

.vv-historia-evidencia {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 0 34px 34px;
}

.vv-historia-evidencia div {
  padding: 25px 23px;
  background: #fff;
  border: 1px solid rgba(91, 57, 34, .12);
  border-radius: 17px;
  box-shadow: 0 10px 25px rgba(61, 47, 34, .06);
}

.vv-historia-evidencia span {
  display: block;
  margin-bottom: 10px;
  color: var(--vvh-green);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
}

.vv-historia-evidencia strong {
  display: block;
  margin-bottom: 9px;
  color: var(--vvh-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
  line-height: 1.25;
}

.vv-historia-evidencia p {
  margin: 0;
  color: #69625b;
  font-size: 13.5px;
  line-height: 1.6;
}

.vv-historia-nombre span {
  display: block;
  margin-bottom: 9px;
  color: #d8c0a7;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .18em;
}

.vv-historia-nombre p {
  margin: 0;
  font-size: 17px;
  line-height: 1.7;
}

.vv-historia-cronologia {
  padding: 68px 55px 72px;
  background: #fbf8f3;
  border: 1px solid rgba(91, 57, 34, .1);
  border-radius: 26px;
}

.vv-historia-foto-cronologia {
  margin: 0 0 48px;
  border-radius: 18px;
  box-shadow: none;
}

.vv-historia-foto-cronologia img {
  aspect-ratio: 16 / 7;
}

.vv-historia-seccion-titulo {
  max-width: 770px;
  margin-bottom: 47px;
}

.vv-historia-linea {
  position: relative;
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.vv-historia-linea::before {
  position: absolute;
  top: 12px;
  bottom: 12px;
  left: 175px;
  width: 1px;
  content: "";
  background: rgba(91, 57, 34, .22);
}

.vv-historia-linea li {
  position: relative;
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr);
  gap: 60px;
  padding: 0 0 37px;
}

.vv-historia-linea li:last-child {
  padding-bottom: 0;
}

.vv-historia-linea li::before {
  position: absolute;
  top: 7px;
  left: 169px;
  width: 13px;
  height: 13px;
  content: "";
  background: var(--vvh-green);
  border: 4px solid #fbf8f3;
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(91, 57, 34, .24);
}

.vv-historia-linea time {
  color: var(--vvh-green);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.4;
  text-align: right;
}

.vv-historia-linea h3 {
  margin: 0 0 8px;
  color: var(--vvh-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
}

.vv-historia-linea p {
  margin: 0;
  color: #625c55;
  font-size: 15.5px;
  line-height: 1.7;
}

.vv-historia-trabajo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, .9fr);
  gap: 42px;
  margin-top: 34px;
}

.vv-historia-trabajo-texto {
  padding: 54px 48px;
  background: #f6efe4;
  border-radius: 24px;
}

.vv-historia-trabajo-texto h2 {
  margin-bottom: 25px;
}

.vv-historia-cualidades {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
}

.vv-historia-cualidades div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 145px;
  padding: 22px;
  background: #fff;
  border: 1px solid rgba(91, 57, 34, .12);
  border-radius: 17px;
  box-shadow: 0 10px 25px rgba(61, 47, 34, .06);
}

.vv-historia-cualidades strong {
  margin-bottom: 7px;
  color: var(--vvh-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 21px;
}

.vv-historia-cualidades span {
  color: #6a635c;
  font-size: 13.5px;
  line-height: 1.55;
}

.vv-historia-hoy {
  margin-top: 34px;
  padding: 62px 48px;
  text-align: center;
  background: #f7f1e7;
  border-radius: 24px;
}

.vv-historia-foto-actual {
  margin-top: 34px;
  margin-bottom: 0;
}

.vv-historia-hoy h2 {
  max-width: 800px;
  margin-right: auto;
  margin-left: auto;
}

.vv-historia-hoy > p:last-of-type {
  max-width: 820px;
  margin: 22px auto 26px;
}

.vv-historia-hoy a {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 0 21px;
  color: #fff;
  background: var(--vvh-brown);
  border-radius: 11px;
  font-weight: 800;
  text-decoration: none;
}

.vv-historia-fuentes {
  margin-top: 34px;
  padding: 28px 31px;
  border-top: 1px solid rgba(91, 57, 34, .18);
}

.vv-historia-fuentes h2 {
  margin: 0 0 14px;
  color: var(--vvh-dark);
  font-size: 18px;
}

.vv-historia-fuentes ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 30px;
  margin: 0;
  padding-left: 18px;
}

.vv-historia-fuentes a {
  color: #6b5846;
  font-size: 13px;
}

@media (max-width: 850px) {
  .vv-historia-origen,
  .vv-historia-trabajo {
    grid-template-columns: 1fr;
  }

  .vv-historia-origen {
    gap: 25px;
  }

  .vv-historia-evidencia {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  article[data-history-node-id="5"] {
    padding: 0 11px;
    box-sizing: border-box;
  }

  .vv-historia-hero {
    padding: 45px 18px 49px;
    border-radius: 20px;
  }

  .vv-historia-hero h1 {
    font-size: 40px;
  }

  .vv-historia-origen {
    margin-top: 48px;
    padding: 0 10px;
  }

  .vv-historia-foto {
    margin-right: 0;
    margin-left: 0;
    border-radius: 18px;
  }

  .vv-historia-foto img,
  .vv-historia-foto-cronologia img {
    aspect-ratio: 4 / 3;
  }

  .vv-historia-foto figcaption {
    padding: 14px 16px 16px;
    font-size: 13px;
  }

  .vv-historia-nombre {
    margin-right: 0;
    margin-left: 0;
    padding: 24px 22px;
  }

  .vv-historia-evidencia {
    margin-right: 0;
    margin-left: 0;
  }

  .vv-historia-cronologia {
    padding: 44px 22px 48px;
  }

  .vv-historia-linea::before {
    left: 6px;
  }

  .vv-historia-linea li {
    grid-template-columns: 1fr;
    gap: 7px;
    padding: 0 0 34px 31px;
  }

  .vv-historia-linea li::before {
    left: 0;
  }

  .vv-historia-linea time {
    text-align: left;
  }

  .vv-historia-trabajo-texto,
  .vv-historia-hoy {
    padding: 42px 23px;
  }

  .vv-historia-cualidades,
  .vv-historia-fuentes ul {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   CARACTERÍSTICAS DEL PASTOR AUSTRALIANO
   ========================================================= */
article[data-history-node-id="8"] {
  --vvc-brown: #5b3922;
  --vvc-dark: #3d2f22;
  --vvc-green: #6b7d50;
  width: min(100%, 1220px);
  margin: 0 auto;
}

.vv-caracteristicas-hero {
  padding: 70px 34px 76px;
  text-align: center;
  background: #f7f1e7;
  border: 1px solid rgba(91, 57, 34, .12);
  border-radius: 28px;
  box-shadow: 0 18px 45px rgba(61, 47, 34, .08);
}

.vv-caracteristicas-kicker {
  margin: 0;
  color: var(--vvc-green);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .2em;
}

.vv-caracteristicas-separador {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 250px;
  margin: 17px auto 27px;
  color: var(--vvc-brown);
}

.vv-caracteristicas-separador span {
  flex: 1;
  height: 1px;
  background: rgba(91, 57, 34, .28);
}

.vv-caracteristicas-hero h1 {
  max-width: 920px;
  margin: 0 auto 24px;
  color: var(--vvc-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(44px, 5.6vw, 76px);
  line-height: 1.01;
}

.vv-caracteristicas-hero > p:last-child {
  max-width: 840px;
  margin: 0 auto;
  color: #5c5650;
  font-size: 18px;
  line-height: 1.75;
}

.vv-caracteristicas-cifras {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 13px;
  margin-top: 25px;
}

.vv-caracteristicas-cifras div {
  padding: 25px 21px;
  background: #fff;
  border: 1px solid rgba(91, 57, 34, .12);
  border-radius: 17px;
  box-shadow: 0 10px 25px rgba(61, 47, 34, .06);
}

.vv-caracteristicas-cifras span {
  display: block;
  margin-bottom: 9px;
  color: var(--vvc-green);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .15em;
}

.vv-caracteristicas-cifras strong {
  display: block;
  color: var(--vvc-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  line-height: 1.17;
}

.vv-caracteristicas-cifras p {
  margin: 8px 0 0;
  color: #6d665f;
  font-size: 13px;
  line-height: 1.5;
}

.vv-caracteristicas-apariencia {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(370px, .95fr);
  gap: 32px;
  margin-top: 34px;
}

.vv-caracteristicas-apariencia-texto {
  padding: 56px 49px;
  background: #f6efe4;
  border-radius: 24px;
}

.vv-caracteristicas-apariencia h2,
.vv-caracteristicas-pelaje h2,
.vv-caracteristicas-seccion-titulo h2,
.vv-caracteristicas-necesidades h2 {
  margin: 14px 0 23px;
  color: var(--vvc-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(35px, 4vw, 52px);
  line-height: 1.06;
}

.vv-caracteristicas-apariencia-texto > p:not(.vv-caracteristicas-kicker),
.vv-caracteristicas-pelaje > div:first-child > p:last-child,
.vv-caracteristicas-seccion-titulo > p:last-child {
  margin: 0 0 17px;
  color: #5f5952;
  font-size: 16.5px;
  line-height: 1.75;
}

.vv-caracteristicas-detalles {
  display: grid;
  gap: 12px;
}

.vv-caracteristicas-detalles article {
  position: relative;
  padding: 27px 29px 25px 74px;
  background: #fff;
  border: 1px solid rgba(91, 57, 34, .12);
  border-radius: 17px;
}

.vv-caracteristicas-detalles article > span {
  position: absolute;
  top: 27px;
  left: 24px;
  color: rgba(91, 57, 34, .25);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 21px;
  font-weight: 700;
}

.vv-caracteristicas-detalles h3 {
  margin: 0 0 7px;
  color: var(--vvc-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
}

.vv-caracteristicas-detalles p {
  margin: 0;
  color: #676059;
  font-size: 14px;
  line-height: 1.65;
}

.vv-caracteristicas-pelaje {
  margin-top: 34px;
  padding: 54px 49px;
  background: #fbf8f3;
  border: 1px solid rgba(91, 57, 34, .1);
  border-radius: 24px;
}

.vv-caracteristicas-pelaje > div:first-child {
  max-width: 850px;
}

.vv-caracteristicas-colores {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 28px;
}

.vv-color {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 120px;
  padding: 18px;
  color: #fff;
  border-radius: 15px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
  font-weight: 700;
  box-shadow: inset 0 -60px 70px rgba(0, 0, 0, .38);
}

.vv-color--azul {background: linear-gradient(135deg, #9da8ad, #30383c 48%, #ddd 49%, #5b6570 70%, #24292c)}
.vv-color--negro {background: linear-gradient(135deg, #3a302a, #111 70%, #8b684b)}
.vv-color--rojo-merle {background: linear-gradient(135deg, #b89a88, #754f3f 42%, #ded3ca 44%, #986d58 70%, #503328)}
.vv-color--rojo {background: linear-gradient(135deg, #86523b, #49291d 75%, #c4916c)}

.vv-caracteristicas-color-nota {
  margin: 20px 0 0;
  color: #6c645c;
  font-size: 13.5px;
  line-height: 1.65;
}

.vv-caracteristicas-temperamento {
  margin-top: 34px;
  padding: 61px 49px 55px;
  background: #f6efe4;
  border-radius: 24px;
}

.vv-caracteristicas-seccion-titulo {
  max-width: 810px;
  margin-bottom: 31px;
}

.vv-caracteristicas-rasgos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
}

.vv-caracteristicas-rasgos article {
  min-height: 135px;
  padding: 24px;
  background: rgba(255, 255, 255, .77);
  border: 1px solid rgba(91, 57, 34, .1);
  border-radius: 16px;
}

.vv-caracteristicas-rasgos strong {
  color: var(--vvc-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
}

.vv-caracteristicas-rasgos p {
  margin: 8px 0 0;
  color: #655f58;
  font-size: 14px;
  line-height: 1.6;
}

.vv-caracteristicas-equilibrio {
  margin-top: 22px;
  padding: 25px 29px;
  border-left: 4px solid var(--vvc-green);
  border-radius: 0 15px 15px 0;
  background: rgba(255, 255, 255, .82);
}

.vv-caracteristicas-equilibrio strong {
  display: block;
  margin-bottom: 7px;
  color: var(--vvc-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 23px;
}

.vv-caracteristicas-equilibrio p {
  margin: 8px 0 0;
  color: #5f5851;
  font-size: 14.5px;
  line-height: 1.68;
}

.vv-caracteristicas-necesidades {
  display: grid;
  grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr);
  gap: 55px;
  margin-top: 34px;
  padding: 57px 49px;
  border: 1px solid rgba(91, 57, 34, .12);
  border-radius: 24px;
}

.vv-caracteristicas-necesidades ol {
  display: grid;
  gap: 17px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.vv-caracteristicas-necesidades li {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 13px;
}

.vv-caracteristicas-necesidades li > span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  color: #fff;
  background: var(--vvc-green);
  border-radius: 50%;
  font-size: 11px;
  font-weight: 800;
}

.vv-caracteristicas-necesidades h3 {
  margin: 0 0 4px;
  color: var(--vvc-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
}

.vv-caracteristicas-necesidades li p {
  margin: 0;
  color: #68615a;
  font-size: 14px;
  line-height: 1.6;
}

.vv-caracteristicas-encaje {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 17px;
  margin-top: 34px;
}

.vv-caracteristicas-encaje > div {
  padding: 35px 38px;
  border-radius: 20px;
}

.vv-caracteristicas-encaje-si {
  background: #edf0e7;
  border: 1px solid rgba(107, 125, 80, .22);
}

.vv-caracteristicas-encaje-piensa {
  background: #f5ede5;
  border: 1px solid rgba(116, 77, 47, .16);
}

.vv-caracteristicas-encaje h2 {
  margin: 0 0 15px;
  color: var(--vvc-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
}

.vv-caracteristicas-encaje ul {
  margin: 0;
  padding-left: 20px;
  color: #5f5952;
  line-height: 1.75;
}

.vv-caracteristicas-cierre {
  margin-top: 34px;
  padding: 56px 30px;
  color: #fff;
  background: linear-gradient(135deg, #493020, #67452d);
  border-radius: 24px;
  text-align: center;
}

.vv-caracteristicas-cierre > p {
  margin: 0 0 8px;
  color: #ddc9b6;
  font-size: 14px;
}

.vv-caracteristicas-cierre h2 {
  max-width: 820px;
  margin: 0 auto 25px;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 3.7vw, 45px);
}

.vv-caracteristicas-cierre div {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.vv-caracteristicas-cierre a {
  display: inline-flex;
  align-items: center;
  min-height: 47px;
  padding: 0 20px;
  color: var(--vvc-brown);
  background: #fff;
  border-radius: 10px;
  font-weight: 800;
  text-decoration: none;
}

.vv-caracteristicas-cierre a:last-child {
  color: #fff;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, .5);
}

.vv-caracteristicas-fuentes {
  margin-top: 30px;
  padding: 27px 31px;
  border-top: 1px solid rgba(91, 57, 34, .18);
}

.vv-caracteristicas-fuentes h2 {
  margin: 0 0 13px;
  color: var(--vvc-dark);
  font-size: 18px;
}

.vv-caracteristicas-fuentes ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 30px;
  margin: 0;
  padding-left: 18px;
}

.vv-caracteristicas-fuentes a {
  color: #6b5846;
  font-size: 13px;
}

@media (max-width: 900px) {
  .vv-caracteristicas-cifras,
  .vv-caracteristicas-colores {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vv-caracteristicas-apariencia,
  .vv-caracteristicas-necesidades {
    grid-template-columns: 1fr;
  }

  .vv-caracteristicas-rasgos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  article[data-history-node-id="8"] {
    padding: 0 11px;
    box-sizing: border-box;
  }

  .vv-caracteristicas-hero {
    padding: 45px 18px 49px;
    border-radius: 20px;
  }

  .vv-caracteristicas-hero h1 {
    font-size: 40px;
  }

  .vv-caracteristicas-cifras,
  .vv-caracteristicas-colores,
  .vv-caracteristicas-rasgos,
  .vv-caracteristicas-encaje,
  .vv-caracteristicas-fuentes ul {
    grid-template-columns: 1fr;
  }

  .vv-caracteristicas-apariencia-texto,
  .vv-caracteristicas-pelaje,
  .vv-caracteristicas-temperamento,
  .vv-caracteristicas-necesidades {
    padding: 42px 23px;
  }

  .vv-caracteristicas-detalles article {
    padding-left: 65px;
  }

  .vv-caracteristicas-encaje > div {
    padding: 30px 25px;
  }
}

/* === Nombres premium con relieve: fichas y tarjetas de camada === */
body article.node-type-camada .vv-pro-puppy h3 {
  position: relative;
  margin: 0 0 7px;
  padding: 0 4px 13px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(20px, 1.35vw, 25px) !important;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: .015em;
  color: #bd8d35 !important;
  text-shadow: 0 1px 0 #f6e3a8, 0 2px 0 #a87425, 0 3px 0 #74501e,
    0 5px 7px rgba(62, 40, 17, .28);
}

body article.node-type-camada .vv-pro-puppy h3::after {
  content: "— ◆ —";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  color: #b78a3b;
  font: 600 7px/1 Arial, sans-serif;
  letter-spacing: 1px;
  text-shadow: none;
  white-space: nowrap;
}

body article.node-type-camada .vv-pro-puppy h3 a {
  color: inherit !important;
  text-decoration: none;
}

body article.node-type-camada .vv-pro-parent h3 {
  position: relative;
  margin: 0 0 16px;
  padding: 0 2px 14px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(27px, 2vw, 34px) !important;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: .015em;
  color: #bd8d35 !important;
  text-shadow: 0 1px 0 #f6e3a8, 0 2px 0 #a87425, 0 3px 0 #74501e,
    0 6px 8px rgba(62, 40, 17, .28);
}

body article.node-type-camada .vv-pro-parent h3::after {
  content: "— ◆ —";
  position: absolute;
  left: 0;
  bottom: 0;
  color: #b78a3b;
  font: 600 7px/1 Arial, sans-serif;
  letter-spacing: 1px;
  text-shadow: none;
  white-space: nowrap;
}

body article.node-type-camada .vv-pro-parent h3 a {
  color: inherit !important;
  text-decoration: none;
}

.node-type-ficha.node-view-mode-full .layout:nth-child(1)
  .field--name-field-nombre-del-perro .field-item {
  position: relative;
  display: inline-block;
  padding-bottom: 20px;
  color: #bd8d35 !important;
  text-shadow: 0 1px 0 #f8e8b5, 0 2px 0 #b17d29, 0 3px 0 #8c5e20,
    0 5px 0 #68451a, 0 8px 10px rgba(55, 35, 15, .26);
}

.node-type-ficha.node-view-mode-full .layout:nth-child(1)
  .field--name-field-nombre-del-perro .field-item::after {
  content: "— ◆ —";
  position: absolute;
  left: 50%;
  bottom: 2px;
  transform: translateX(-50%);
  color: #ae8034;
  font: 600 9px/1 Arial, sans-serif;
  letter-spacing: 2px;
  text-shadow: none;
  white-space: nowrap;
}

@media (max-width: 700px) {
  body article.node-type-camada .vv-pro-parent h3 {
    font-size: 27px !important;
    text-shadow: 0 1px 0 #f6e3a8, 0 2px 0 #966621,
      0 4px 6px rgba(62, 40, 17, .25);
  }

  body article.node-type-camada .vv-pro-puppy h3 {
    font-size: 21px !important;
    text-shadow: 0 1px 0 #f6e3a8, 0 2px 0 #966621,
      0 4px 5px rgba(62, 40, 17, .25);
  }

  .node-type-ficha.node-view-mode-full .layout:nth-child(1)
    .field--name-field-nombre-del-perro .field-item {
    padding-bottom: 17px;
    text-shadow: 0 1px 0 #f8e8b5, 0 2px 0 #a87425, 0 3px 0 #74501e,
      0 6px 7px rgba(55, 35, 15, .24);
  }
}
/* Selector de idioma del tema Villaverde Marina. */
.header-top-container { position:relative; }
#block-villaverde-marina-alternadordeidioma {
  position:absolute;
  top:50%;
  right:265px;
  transform:translateY(-50%);
}
#block-villaverde-marina-alternadordeidioma ul.links {
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}
#block-villaverde-marina-alternadordeidioma ul.links > li { margin:0; padding:0; }
#block-villaverde-marina-alternadordeidioma ul.links > li > a {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  padding:0;
  color:#9a3e0a;
  border-radius:50%;
  background:#fff;
  font-size:0;
  font-weight:700;
  line-height:1;
  text-decoration:none;
  text-transform:uppercase;
}
#block-villaverde-marina-alternadordeidioma ul.links > li > a::after {
  content:attr(hreflang);
  font-size:11px;
  text-transform:uppercase;
}
#block-villaverde-marina-alternadordeidioma ul.links > li.is-active > a,
#block-villaverde-marina-alternadordeidioma ul.links > li > a.is-active {
  color:#fff;
  background:#cc4c09;
}
@media (max-width:767px) {
  #block-villaverde-marina-alternadordeidioma {
    position:static;
    transform:none;
    margin-left:auto;
  }
  #block-villaverde-marina-alternadordeidioma ul.links > li > a { width:30px; height:30px; }
  #block-villaverde-marina-alternadordeidioma ul.links > li > a::after { font-size:10px; }
}
/* Las páginas editoriales con portada propia no repiten el título ni las
   pestañas administrativas dentro del diseño público. */
.region-content:has(article[data-history-node-id="5"]) > #block-villaverde-marina-page-title,
.region-content:has(article[data-history-node-id="7"]) > #block-villaverde-marina-page-title,
.region-content:has(article[data-history-node-id="8"]) > #block-villaverde-marina-page-title,
.region-content:has(article[data-history-node-id="9"]) > #block-villaverde-marina-page-title,
.region-content:has(article[data-history-node-id="10"]) > #block-villaverde-marina-page-title,
.region-content:has(article[data-history-node-id="11"]) > #block-villaverde-marina-page-title,
.region-content:has(article[data-history-node-id="12"]) > #block-villaverde-marina-page-title,
.region-content:has(article[data-history-node-id="148"]) > #block-villaverde-marina-page-title,
.region-content:has(article[data-history-node-id="5"]) > #block-villaverde-marina-local-tasks,
.region-content:has(article[data-history-node-id="7"]) > #block-villaverde-marina-local-tasks,
.region-content:has(article[data-history-node-id="8"]) > #block-villaverde-marina-local-tasks,
.region-content:has(article[data-history-node-id="9"]) > #block-villaverde-marina-local-tasks,
.region-content:has(article[data-history-node-id="10"]) > #block-villaverde-marina-local-tasks,
.region-content:has(article[data-history-node-id="11"]) > #block-villaverde-marina-local-tasks,
.region-content:has(article[data-history-node-id="12"]) > #block-villaverde-marina-local-tasks,
.region-content:has(article[data-history-node-id="148"]) > #block-villaverde-marina-local-tasks {
  display:none !important;
}

/* Las rutas construidas por módulos ya incluyen un encabezado propio. */
body.path-buscar .page-title-wrap,
body.vv-own-page-title .page-title-wrap {
  display:none !important;
}

/* Cabecera Villaverde unificada: navegación y utilidades en una sola franja. */
.header {
  position:relative;
  z-index:50;
  border-bottom:1px solid rgba(91,65,42,.09);
  background:#fbf7ef;
  box-shadow:0 6px 22px rgba(55,38,25,.07);
}
.header .header-container {
  min-height:86px;
  gap:18px;
  padding:5px 0;
}
.header .site-branding { flex:0 0 auto; position:relative; z-index:2; }
.header .site-logo img,
.header .site-branding img {
  width:auto;
  max-height:80px;
}
.header .header-right {
  display:flex;
  flex:1 1 auto;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  min-width:0;
}
.header-utilities,
.header-utility-blocks,
.header-utility-blocks .region-header-top {
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
}
.header-utility-blocks .block { margin:0; }
.header-utility-blocks .block > h2 { display:none; }
.header-utility-blocks ul.menu {
  display:flex;
  align-items:center;
  gap:5px;
  margin:0;
  padding:0;
  list-style:none;
}
.header-utility-blocks ul.menu a {
  display:flex;
  align-items:center;
  min-height:34px;
  padding:6px 10px;
  border:1px solid rgba(139,82,39,.18);
  border-radius:20px;
  background:rgba(255,255,255,.76);
  color:#55361f;
  font-size:.78rem;
  line-height:1;
  text-decoration:none;
}
#block-villaverde-marina-alternadordeidioma {
  position:static;
  top:auto;
  right:auto;
  margin:0;
  transform:none;
}
#block-villaverde-marina-alternadordeidioma ul.links { gap:5px; }
#block-villaverde-marina-alternadordeidioma ul.links > li > a {
  width:32px;
  height:32px;
  border:1px solid rgba(139,82,39,.12);
  box-sizing:border-box;
}
.header-social .social-icons { display:flex; gap:4px; margin:0; padding:0; }
.header-social .social-icons li a { width:31px; height:31px; border-width:1px; }

@media (min-width:992px) {
  .header .region-primary-menu .menu-item-level-1 > a {
    padding:11px 8px;
    font-size:14px;
  }
  .header .region-primary-menu .menu-item-has-children > a { padding-right:29px; }
  .header .region-primary-menu .menu-item-has-children > .submenu-toggle { right:5px; }
}

/* Sobre portadas fotográficas, el mismo menú forma parte visual de la imagen. */
body.page-type-ficha .header,
body.page-type-camada .header,
body.frontpage .header {
  position:relative;
  margin-bottom:-97px;
  border-bottom:1px solid rgba(255,255,255,.2);
  background:linear-gradient(180deg,rgba(21,27,21,.72),rgba(21,27,21,.38));
  box-shadow:none;
  backdrop-filter:blur(3px);
}
body.page-type-ficha .header .region-primary-menu .menu-item-level-1 > a,
body.page-type-camada .header .region-primary-menu .menu-item-level-1 > a,
body.frontpage .header .region-primary-menu .menu-item-level-1 > a,
body.page-type-ficha .header .search-icon,
body.page-type-camada .header .search-icon,
body.frontpage .header .search-icon { color:#fff; }
body.page-type-ficha .header .region-primary-menu .menu-item-has-children > .submenu-toggle::before,
body.page-type-camada .header .region-primary-menu .menu-item-has-children > .submenu-toggle::before,
body.frontpage .header .region-primary-menu .menu-item-has-children > .submenu-toggle::before { color:#fff; }
body.page-type-ficha .header-utility-blocks ul.menu a,
body.page-type-camada .header-utility-blocks ul.menu a,
body.frontpage .header-utility-blocks ul.menu a,
body.page-type-ficha #block-villaverde-marina-alternadordeidioma ul.links > li > a,
body.page-type-camada #block-villaverde-marina-alternadordeidioma ul.links > li > a,
body.frontpage #block-villaverde-marina-alternadordeidioma ul.links > li > a,
body.page-type-ficha .header-social .social-icons li a,
body.page-type-camada .header-social .social-icons li a,
body.frontpage .header-social .social-icons li a {
  border-color:rgba(255,255,255,.42);
  background:rgba(255,255,255,.9);
}

@media (max-width:1400px) {
  .header-social { display:none; }
  .header .header-container { gap:10px; }
}
@media (max-width:1320px) and (min-width:992px) {
  .header-utility-blocks .menu { display:none; }
}
@media (max-width:1080px) and (min-width:992px) {
  .header-utility-blocks ul.menu { display:none; }
  .header .region-primary-menu .menu-item-level-1 > a { padding-right:6px; padding-left:6px; font-size:13px; }
  .header .region-primary-menu .menu-item-has-children > a { padding-right:26px; }
}
@media (max-width:991px) {
  .header .header-container { min-height:74px; padding:4px 0; }
  .header .site-logo img,
  .header .site-branding img { max-height:68px; }
  .header-utilities { margin-left:auto; }
  .header-utility-blocks ul.menu { display:none; }
  body.page-type-ficha .header .mobile-menu span,
  body.page-type-camada .header .mobile-menu span,
  body.frontpage .header .mobile-menu span { background:#fff; }
  body.page-type-ficha .header,
  body.page-type-camada .header,
  body.frontpage .header { margin-bottom:-77px; }
}
@media (max-width:620px) {
  .header .header-right { gap:5px; }
  .header .site-logo img,
  .header .site-branding img { max-height:62px; }
}
/* Notes are reserved for the complete dog record, not listing cards. */
.path-cachorros-disponibles .node-view-mode-teaser .field--name-field-anotaciones {
  display: none;
}

/* A public card may indicate chip status, but must never expose its number. */
.path-cachorros-disponibles .node-view-mode-teaser .field--name-field-microchip {
  display: none;
}

/* Listing cards use the first gallery image only; full records keep them all. */
.path-cachorros-disponibles .node-view-mode-teaser > .node-content
  .field--name-field-foto > .field-item ~ .field-item {
  display: none;
}
