﻿:root{
  --bg:#f4f7fb;
  --bg-soft:#eaf1fb;
  --surface:#ffffff;
  --surface-2:#f8fbff;
  --text:#102033;
  --muted:#58708a;
  --border:#d7e2ef;
  --shadow:0 18px 50px rgba(16,32,51,.08);
  --accent:#0f7a75;
  --accent-2:#ff8a3d;
  --success:#1b8a59;
  --warn:#d97706;
  --danger:#be123c;
  --radius:24px;
  --radius-sm:16px;
  --max:1180px;
  --font:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --serif:"Georgia","Iowan Old Style","Times New Roman",serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:
  radial-gradient(circle at top left, rgba(15,122,117,.12), transparent 35%),
  radial-gradient(circle at top right, rgba(255,138,61,.12), transparent 28%),
  var(--bg);
  color:var(--text);
  font-family:var(--font);
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
body{min-height:100vh}
.container{max-width:var(--max);margin:0 auto;padding:0 20px}
.site-shell{min-height:100vh;display:flex;flex-direction:column}
.site-header{position:sticky;top:0;z-index:50;background:rgba(244,247,251,.86);backdrop-filter:blur(16px);border-bottom:1px solid rgba(215,226,239,.8)}
.header-grid{display:flex;align-items:center;gap:24px;justify-content:space-between;padding:16px 20px}
.brand{display:flex;align-items:center;gap:14px;font-weight:800}
.brand strong{display:block;font-size:1.05rem}
.brand small{display:block;color:var(--muted);font-weight:500}
.app-icon{width:44px;height:44px;border-radius:15px;background:linear-gradient(135deg,var(--accent),#123a67);display:grid;place-items:center;color:#fff;box-shadow:var(--shadow);font-size:1.1rem}
.nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.nav-link{padding:10px 14px;border-radius:999px;color:var(--muted);font-weight:700;font-size:.95rem}
.nav-link:hover,.nav-link.active{background:var(--surface);color:var(--text);box-shadow:0 8px 24px rgba(16,32,51,.08)}
.hero{padding:56px 0 28px}
.hero-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:26px;align-items:stretch}
.hero-copy,.hero-panel,.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.hero-copy{padding:28px}
.hero-copy h1,.section-title h2,.hero-panel h2,.card h3,.not-found h2{margin:.3rem 0 0;line-height:1.05}
.hero-copy h1{font-size:clamp(2.3rem,4vw,4.7rem);font-family:var(--serif);max-width:11ch}
.lead{font-size:1.06rem;line-height:1.75;color:var(--muted);max-width:65ch}
.button-row,.trust-row,.chip-row,.meta-line,.article-meta,.card-topline,.toolbar,.filters,.stats,.footer-links,.list-compact,.bullet-list{display:flex;flex-wrap:wrap;gap:10px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:999px;padding:12px 18px;font-weight:800;border:1px solid var(--border);background:var(--surface)}
.button.primary{background:linear-gradient(135deg,var(--accent),#125f64);color:#fff;border-color:transparent}
.button.ghost{background:transparent}
.trust-row{margin-top:18px}
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 12px;font-weight:800;font-size:.82rem;border:1px solid transparent}
.badge-neutral{background:#eef4fb;color:#39506a;border-color:#dae5f1}
.badge-accent{background:rgba(15,122,117,.12);color:var(--accent);border-color:rgba(15,122,117,.18)}
.badge-success{background:rgba(27,138,89,.12);color:var(--success);border-color:rgba(27,138,89,.18)}
.badge-warn{background:rgba(217,119,6,.12);color:var(--warn);border-color:rgba(217,119,6,.18)}
.section{padding:22px 0 36px}
.section.alt{background:linear-gradient(180deg,transparent,rgba(15,122,117,.05))}
.section-title{margin-bottom:18px}
.kicker{margin:0 0 6px;text-transform:uppercase;letter-spacing:.18em;color:var(--accent);font-weight:900;font-size:.77rem}
.section-title h2{font-size:clamp(1.55rem,3vw,2.55rem)}
.section-subtitle{margin:.35rem 0 0;color:var(--muted);line-height:1.7;max-width:70ch}
.grid-2,.grid-3,.split-grid,.article-grid{display:grid;gap:18px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.split-grid{grid-template-columns:1.15fr .85fr;align-items:start}
.card{padding:22px}
.hero-panel{padding:24px}
.hero-panel h2{font-size:1.6rem}
.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.stat-grid div,.mini-card,.related-card,.list-item{padding:14px;border-radius:18px;background:var(--surface-2);border:1px solid var(--border)}
.stat-grid strong{display:block;font-size:1.35rem}
.stat-grid span{color:var(--muted)}
.meta-line{justify-content:space-between;align-items:center;margin-top:12px;color:var(--muted)}
.text-link,.inline-link{color:var(--accent);font-weight:800}
.text-link:hover,.inline-link:hover{color:#0d5d59}
.toolbar{justify-content:space-between;align-items:flex-start;margin:8px 0 18px}
.input{width:100%;border:1px solid var(--border);border-radius:16px;background:#fff;padding:13px 14px;font:inherit;color:var(--text);outline:none}
.input:focus{border-color:rgba(15,122,117,.55);box-shadow:0 0 0 4px rgba(15,122,117,.12)}
.filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:min(100%,360px)}
.chip{border:1px solid var(--border);background:var(--surface);padding:10px 14px;border-radius:999px;font-weight:800;color:var(--muted);cursor:pointer}
.chip-active{background:rgba(15,122,117,.12);color:var(--accent);border-color:rgba(15,122,117,.18)}
.card-topline{justify-content:space-between;align-items:center;color:var(--muted);margin-bottom:8px}
.bullet-list{padding-left:18px;flex-direction:column;gap:6px;color:var(--text);line-height:1.6}
.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}
.results-count{color:var(--muted);font-weight:700}
.article-meta{align-items:center;color:var(--muted);margin:10px 0 18px}
.article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.article-section h3{margin-top:0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.form-grid label{display:grid;gap:7px;font-weight:700;color:var(--muted)}
.result-card h2{font-size:2rem;margin-top:8px}
.small-note{font-size:.92rem;color:var(--muted)}
.site-footer{margin-top:auto;padding:32px 0 42px;border-top:1px solid rgba(215,226,239,.8);background:rgba(255,255,255,.55)}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:24px}
.footer-grid h3{margin:.3rem 0;font-size:1.45rem}
.footer-grid h4{margin:0 0 10px}
.footer-links{list-style:none;padding:0;margin:0;flex-direction:column}
.footer-links a{color:var(--muted)}
.footer-links a:hover{color:var(--accent)}
.list-compact{flex-direction:column}
.list-item{display:flex;align-items:center;justify-content:space-between;gap:14px}
.list-item p,.card p,.mini-card p,.related-card p{color:var(--muted);line-height:1.65}
.related-card{display:block}
.not-found{padding:30px}
@media (max-width: 980px){
  .hero-grid,.split-grid,.grid-2,.grid-3,.footer-grid,.article-grid,.form-grid{grid-template-columns:1fr}
  .nav{justify-content:flex-start}
  .header-grid{flex-direction:column;align-items:flex-start}
  .toolbar{flex-direction:column}
  .filters{width:100%}
}
@media (max-width: 640px){
  .hero{padding-top:28px}
  .hero-copy{padding:22px}
  .hero-copy h1{max-width:unset}
  .button-row{flex-direction:column}
  .button{width:100%}
  .mini-grid,.stat-grid{grid-template-columns:1fr}
  .list-item{flex-direction:column;align-items:flex-start}
}


@media (max-width: 640px){
  .site-header{transition:transform .25s ease, opacity .25s ease, max-height .25s ease, padding .25s ease;}
  body.mobile-nav-collapsed .site-header{transform:translateY(-8px);}
  body.mobile-nav-collapsed .nav{
    max-height:0;
    opacity:0;
    overflow:hidden;
    pointer-events:none;
    margin-top:0;
    transform:translateY(-8px);
  }
  body.mobile-nav-collapsed .header-grid{gap:10px;padding-bottom:10px;}
  body.mobile-nav-collapsed .brand small{display:none;}
}

@media (min-width: 981px){
  .hero-grid{
    grid-template-columns: minmax(0, 1fr);
  }
  .hero-copy h1{
    max-width: 15ch;
  }
  .hero-panel{
    max-width: 540px;
    justify-self: end;
  }
}

.guides-layout{
  display:grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap:18px;
  align-items:start;
}
.guides-sidebar{
  position:sticky;
  top:92px;
}
.guides-sidebar h3{
  margin-top:0;
}
.guides-sidebar .filters{
  grid-template-columns:1fr;
  min-width:0;
  width:100%;
}
.guides-results{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
@media (min-width: 1100px){
  .guides-results{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width: 980px){
  .guides-layout{grid-template-columns:1fr;}
  .guides-sidebar{position:static;}
}


.hero-copy h1,
.section-title h2,
.hero-panel h2,
.card h3,
.article-section h3,
.result-card h2 {
  text-wrap: balance;
}

.hero-copy .lead,
.card p,
.article-section p,
.section-subtitle,
.list-item p,
.mini-card p,
.related-card p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

@media (min-width: 981px){
  .hero-grid{
    grid-template-columns: minmax(0, 1fr);
  }
  .hero-copy{
    padding: 34px 38px 36px;
  }
  .hero-copy h1{
    max-width: 15ch;
  }
  .hero-panel{
    max-width: 560px;
    justify-self: end;
    margin-top: 18px;
  }
  .guides-layout{
    grid-template-columns: 300px minmax(0, 1fr);
  }
  .guides-results{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px){
  .site-header{
    overflow: clip;
  }
  .header-grid{
    gap: 10px;
  }
  body.mobile-nav-collapsed .nav{
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    transform: translateY(-10px);
    margin-top: 0;
  }
  body.mobile-nav-collapsed .brand small{
    display: none;
  }
  body.mobile-nav-collapsed .header-grid{
    padding-bottom: 10px;
  }
}
/* MiMascotaPlus visual overrides */
.brand {
  align-items: center;
  gap: 12px;
}

.app-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: linear-gradient(145deg, #0f4a66 0%, #0d7a84 100%);
  color: #fff;
  box-shadow: 0 10px 24px rgba(13, 122, 132, 0.18);
  overflow: hidden;
  flex: 0 0 auto;
}

.app-icon svg {
  width: 26px;
  height: 26px;
  display: block;
  fill: currentColor;
}

.hero-grid {
  max-width: 1120px;
  margin-inline: auto;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  gap: 28px;
}

.hero-copy,
.hero-panel {
  width: 100%;
}

.hero-copy {
  max-width: 820px;
  text-align: center;
}

.hero-copy .lead {
  text-align: center;
  margin-inline: auto;
}

.hero-copy .actions,
.hero-copy .badges {
  justify-content: center;
}

.hero-copy h1,
.section-title h2,
.hero-panel h2,
.card h3,
.article-section h3,
.result-card h2 {
  text-wrap: balance;
}

.hero-panel {
  max-width: 460px;
  justify-self: center;
}

.hero-panel h2,
.hero-panel p,
.hero-panel .stat-grid {
  text-align: center;
}

.guides-layout {
  max-width: 1120px;
  margin-inline: auto;
  grid-template-columns: minmax(260px, 300px) minmax(0, 1fr);
  align-items: start;
  gap: 28px;
}

.guides-sidebar {
  position: sticky;
  top: 100px;
  align-self: start;
}

.guides-results {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.card p,
.article-section p,
.section-subtitle,
.list-item p,
.mini-card p,
.related-card p,
.hero-copy .lead {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

@media (max-width: 980px) {
  .hero-grid,
  .guides-layout {
    grid-template-columns: minmax(0, 1fr);
    max-width: 100%;
  }

  .hero-copy,
  .hero-panel {
    max-width: none;
  }

  .guides-sidebar {
    position: static;
    top: auto;
  }

  .guides-results {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  .site-header {
    position: sticky;
    top: 0;
    z-index: 50;
  }

  .site-header .nav-links,
  .site-header .brand small,
  .site-header .header-actions {
    transition: opacity 0.2s ease, transform 0.2s ease, max-height 0.2s ease, margin 0.2s ease;
  }

  body.mobile-nav-collapsed .site-header .nav-links,
  body.mobile-nav-collapsed .site-header .brand small,
  body.mobile-nav-collapsed .site-header .header-actions {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transform: translateY(-6px);
    margin: 0;
    padding: 0;
    pointer-events: none;
  }
}
/* Layout final: composition balanced on desktop and consistent cards on every screen. */
.card,
.hero-copy,
.hero-panel { min-width: 0; }

.grid-2 > .card,
.grid-3 > .card,
#guide-results > .card,
.guides-results > .card {
  height: 100%;
  display: flex;
  flex-direction: column;
}

#guide-results > .card .meta-line,
.guides-results > .card .meta-line,
#guide-results > .card .card-link,
.guides-results > .card .card-link {
  margin-top: auto;
  padding-top: 14px;
}

@media (min-width: 981px) {
  .container { max-width: 1220px; }
  .hero-grid {
    width: 100%;
    max-width: var(--max);
    grid-template-columns: minmax(0, 1.15fr) minmax(340px, 0.85fr);
    justify-items: stretch;
    align-items: stretch;
    gap: 24px;
  }
  .hero-copy,
  .hero-panel { width: auto; max-width: none; margin: 0; }
  .hero-copy {
    text-align: left;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .hero-copy .lead { text-align: left; margin-inline: 0; }
  .hero-copy .actions,
  .hero-copy .badges { justify-content: flex-start; }
  .hero-panel {
    justify-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .hero-panel h2,
  .hero-panel p,
  .hero-panel .stat-grid { text-align: left; }
  .hero-panel .stat-grid { margin-top: auto; }
  .grid-3 > .card { min-height: 230px; }
  #guide-results,
  .guides-results {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
  }
  #guide-results > .card,
  .guides-results > .card { min-height: 260px; }
  .toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    gap: 18px;
    align-items: center;
  }
  .toolbar .input { min-width: 0; }
  .toolbar .filters {
    width: 100%;
    min-width: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-copy,
  .hero-panel { width: 100%; max-width: none; }
  #guide-results,
  .guides-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .toolbar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  .toolbar .filters { width: 100%; min-width: 0; }
}

@media (max-width: 640px) {
  #guide-results,
  .guides-results { grid-template-columns: 1fr; }
  .hero-copy,
  .hero-panel { text-align: left; }
  .hero-copy .lead { text-align: left; margin-inline: 0; }
  .hero-copy .actions,
  .hero-copy .badges { justify-content: flex-start; }
  .hero-panel h2,
  .hero-panel p,
  .hero-panel .stat-grid { text-align: left; }
}
/* Solicitud final: primero el contenido principal y debajo el método editorial. */
@media (min-width: 981px) {
  .hero-grid {
    grid-template-columns: minmax(0, 1fr);
    max-width: 1120px;
    gap: 24px;
  }

  .hero-copy {
    width: 100%;
    padding: 42px 48px;
  }

  .hero-copy h1 { max-width: 20ch; }
  .hero-copy .button-row,
  .hero-copy .trust-row { justify-content: flex-start; }

  .hero-panel {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 32px 40px;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
    column-gap: 32px;
    align-items: center;
  }

  .hero-panel .kicker,
  .hero-panel h2,
  .hero-panel > p { grid-column: 1; }

  .hero-panel .stat-grid {
    grid-column: 2;
    grid-row: 1 / span 3;
    margin-top: 0;
    align-self: stretch;
  }

  .hero-panel .stat-grid div {
    min-height: 86px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .toolbar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }

  .toolbar .input { width: 100%; }

  .toolbar .filters {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    min-width: 0;
    gap: 10px;
  }

  .toolbar .filters .chip {
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 980px) and (min-width: 641px) {
  .toolbar .filters {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    min-width: 0;
  }

  .toolbar .filters .chip {
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 640px) {
  .toolbar .filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    min-width: 0;
  }

  .toolbar .filters .chip {
    width: 100%;
    text-align: center;
  }

  .hero-panel { display: block; }
  .hero-panel .stat-grid { margin-top: 18px; }
}

/* Ajuste final: texto justificado y tarjetas con formato uniforme. */
.hero-copy .lead,
.hero-panel > p,
.section-title .section-subtitle,
.card > p,
.card .section-title > p,
.list-compact .list-item p,
#guide-results .card > p,
.guides-results .card > p,
.article p,
.prose p,
.tool-card p,
.source-card p,
.directory-card p,
.faq-card p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  line-height: 1.65;
}

.section-title,
.card,
.hero-copy,
.hero-panel {
  text-align: left;
}

.grid-2,
.grid-3,
.split-grid,
#guide-results,
.guides-results {
  align-items: stretch;
}

.grid-2 > .card,
.grid-3 > .card,
.split-grid > .card,
#guide-results > .card,
.guides-results > .card {
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
}

.grid-2 > .card > p:last-of-type,
.grid-3 > .card > p:last-of-type,
#guide-results > .card > p:last-of-type,
.guides-results > .card > p:last-of-type {
  flex: 1 1 auto;
}

.grid-2 > .card .meta-line,
.grid-3 > .card .meta-line,
#guide-results > .card .meta-line,
.guides-results > .card .meta-line {
  margin-top: auto;
}

.hero-copy .lead {
  max-width: 72ch;
}

.hero-panel > p {
  max-width: 68ch;
}

@media (max-width: 640px) {
  .hero-copy .lead,
  .hero-panel > p,
  .section-title .section-subtitle,
  .card > p,
  .card .section-title > p,
  .list-compact .list-item p,
  #guide-results .card > p,
  .guides-results .card > p,
  .article p,
  .prose p,
  .tool-card p,
  .source-card p,
  .directory-card p,
  .faq-card p {
    text-align: justify;
  }
}
