/* ═══════════════════════════════════════════════════════════
   Clínica Veterinaria Huellas — hoja de estilos
   Proyecto conceptual diseñado y construido por Markxs
   ═══════════════════════════════════════════════════════════ */

:root{
  --teal:#1F6F6B; --teal-d:#14514E; --teal-l:#E9F3F0; --teal-2:#2C8983;
  --coral:#EE6C4D; --coral-d:#D2543A;
  --sun:#F5B841;
  --ink:#22332F; --soft:#5D716C; --err:#C0392B;
  --paper:#FFFFFF; --shell:#F5FAF8; --linea:#E2EFEC;
  --round:22px;
  --disp:"Quicksand",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --body:"Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --wrap:72rem;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--shell);color:var(--ink);font-family:var(--body);
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{text-wrap:balance}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.2rem,5vw,2.5rem)}
.saltar{position:absolute;left:-999px;top:0;background:var(--coral);color:#fff;padding:.7rem 1.1rem;z-index:99}
.saltar:focus{left:.5rem;top:.5rem}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}

.rv{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}

.demo-bar{background:var(--teal-d);color:#CFE6E3;font-size:.8rem;padding:.6rem 0}
.demo-bar .wrap{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;justify-content:center;text-align:center}
.demo-bar b{color:#9FDCD6}
.demo-bar a{color:#fff;text-underline-offset:3px}

/* ── cabecera ───────────────────────────────────────────── */
.top{position:sticky;top:0;z-index:40;background:rgba(245,250,248,.94);backdrop-filter:blur(12px);border-bottom:1px solid #DCEBE7}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:78px}
.logo{display:flex;align-items:center;gap:.6rem;font-family:var(--disp);font-weight:700;font-size:1.3rem;
  color:var(--teal-d);text-decoration:none;letter-spacing:-.01em;z-index:2}
.logo svg{width:36px;height:36px;flex:none}
.menu{display:flex;align-items:center;gap:1.4rem;font-size:.95rem;font-weight:600}
.menu a{color:var(--ink);text-decoration:none;transition:color .3s}
.menu a:hover{color:var(--teal)}
.menu a[aria-current="page"]{color:var(--teal);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.burger{display:none;width:46px;height:46px;border:1px solid #CFE2DD;border-radius:14px;background:#fff;cursor:pointer;position:relative;z-index:2}
.burger span{position:absolute;left:13px;width:20px;height:2px;background:var(--teal-d);border-radius:2px;transition:transform .35s var(--ease)}
.burger span:nth-child(1){top:18px}
.burger span:nth-child(2){bottom:18px}
.top.open .burger span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.top.open .burger span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
@media(max-width:900px){
  .burger{display:block}
  .menu{position:fixed;inset:0 0 auto 0;flex-direction:column;align-items:stretch;gap:.2rem;
    background:var(--shell);padding:94px 1.5rem 1.6rem;border-bottom:1px solid #DCEBE7;
    transform:translateY(-102%);transition:transform .45s var(--ease);z-index:1}
  .top.open .menu{transform:none}
  .menu a:not(.btn){padding:.95rem 0;border-bottom:1px solid #DCEBE7;font-size:1.1rem}
  .menu .btn{margin-top:.9rem}
}

/* ── botones ────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.82rem 1.5rem;
  border-radius:999px;font-family:var(--disp);font-weight:700;font-size:.95rem;text-decoration:none;
  border:2px solid transparent;cursor:pointer;transition:transform .3s var(--ease),background-color .3s}
.btn:hover{transform:translateY(-2px)}
.btn-1{background:var(--coral);color:#fff}
.btn-1:hover{background:var(--coral-d)}
.btn-2{border-color:var(--teal);color:var(--teal-d);background:transparent}
.btn-2:hover{background:#1f6f6b12}
.btn-blanco{background:#fff;color:var(--coral-d)}
.btn-blanco:hover{background:#FFF1EC}

/* ── portada ────────────────────────────────────────────── */
.portada{padding-block:clamp(2.5rem,7vw,4.5rem)}
.portada .in{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(2rem,5vw,3.5rem);align-items:center}
.pill{display:inline-flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #D6E9E4;color:var(--teal-d);
  border-radius:999px;padding:.42rem 1rem;font-size:.84rem;font-weight:700;font-family:var(--disp);margin:0 0 1.4rem}
.pill i{width:8px;height:8px;border-radius:50%;background:var(--sun);flex:none;animation:latir 2.4s infinite}
@keyframes latir{0%,100%{opacity:1}50%{opacity:.35}}
.portada h1{font-family:var(--disp);font-weight:700;font-size:clamp(2.3rem,6.4vw,3.9rem);
  line-height:1.06;letter-spacing:-.02em;margin:0 0 1.1rem}
.portada h1 span{color:var(--teal)}
.portada p{color:var(--soft);margin:0 0 2rem;font-size:1.05rem;max-width:44ch}
.acts{display:flex;flex-wrap:wrap;gap:.8rem}
.foto-hero{position:relative}
.foto-hero img{border-radius:28px;aspect-ratio:7/5;object-fit:cover;width:100%}
.badge-foto{position:absolute;left:-10px;bottom:-16px;background:#fff;border-radius:18px;padding:.9rem 1.15rem;
  box-shadow:0 18px 40px -24px rgba(20,81,78,.7);display:flex;align-items:center;gap:.7rem;max-width:15rem}
.badge-foto b{font-family:var(--disp);font-size:1.5rem;color:var(--teal-d);line-height:1}
.badge-foto span{font-size:.84rem;color:var(--soft);line-height:1.3}

/* portada interior con foto de fondo */
.cabecera{position:relative;color:#fff;overflow:hidden;background:var(--teal-d)}
.cabecera img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cabecera::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,49,47,.72),rgba(11,49,47,.86))}
.cabecera .wrap{position:relative;z-index:2;padding-block:clamp(3rem,8vw,4.5rem)}
.cabecera h1{font-family:var(--disp);font-weight:700;font-size:clamp(2.1rem,5.6vw,3.4rem);line-height:1.08;margin:0 0 .7rem}
.cabecera h1 span{color:#9FDCD6}
.cabecera p{margin:0;color:#CFE6E3;max-width:48ch}
.miga{font-size:.85rem;color:#9FC4C0;margin:0 0 1.2rem}
.miga a{text-decoration:none;border-bottom:1px solid #ffffff40}
.miga span{padding-inline:.4rem;color:#7FA9A5}

/* ── urgencias ──────────────────────────────────────────── */
.alerta{background:var(--teal-d);color:#fff}
.alerta .wrap{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;align-items:center;justify-content:space-between;padding-block:1.15rem}
.alerta p{margin:0;font-size:.98rem}
.alerta b{font-family:var(--disp);font-size:1.1rem}
.alerta a{color:var(--sun);font-weight:700;text-decoration:none;white-space:nowrap}

/* ── secciones ──────────────────────────────────────────── */
.sec{padding-block:clamp(3.5rem,9vw,5.5rem)}
.sec-blanca{background:#fff}
.sec-head{max-width:38rem;margin-bottom:2.4rem}
.sec-head .k{font-family:var(--disp);font-weight:700;font-size:.8rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--coral);margin:0 0 .8rem}
.sec-head h2{font-family:var(--disp);font-weight:700;font-size:clamp(1.9rem,4.6vw,2.7rem);
  line-height:1.1;letter-spacing:-.02em;margin:0 0 .7rem}
.sec-head h2 span{color:var(--teal)}
.sec-head>p{margin:0;color:var(--soft)}

.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.3rem}
.serv{background:var(--paper);border:1px solid var(--linea);border-radius:var(--round);padding:1.7rem;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.serv:hover{transform:translateY(-5px);box-shadow:0 22px 40px -28px rgba(20,81,78,.55)}
.ico{width:54px;height:54px;border-radius:16px;background:var(--teal-l);display:grid;place-items:center;margin-bottom:1rem}
.ico svg{width:27px;height:27px;stroke:var(--teal-d);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.serv h3{font-family:var(--disp);font-weight:700;font-size:1.16rem;margin:0 0 .45rem}
.serv p{margin:0;font-size:.94rem;color:var(--soft)}
.serv ul{margin:.9rem 0 0;padding-left:1.1rem;font-size:.9rem;color:var(--soft);display:grid;gap:.3rem}

/* ── dos columnas con foto ──────────────────────────────── */
.duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:clamp(2rem,5vw,3.5rem);align-items:center}
.duo img{border-radius:24px;width:100%;aspect-ratio:4/3;object-fit:cover}
.duo h2{font-family:var(--disp);font-weight:700;font-size:clamp(1.8rem,4.4vw,2.5rem);line-height:1.1;margin:0 0 1rem}
.duo h2 span{color:var(--teal)}
.duo p{color:var(--soft);margin:0 0 1rem}

/* ── precios ────────────────────────────────────────────── */
.tarifas{background:#fff;border:1px solid var(--linea);border-radius:var(--round);overflow:hidden}
.tarifa{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:baseline;justify-content:space-between;
  padding:1.1rem clamp(1.2rem,3vw,1.9rem);border-bottom:1px solid #EDF5F3}
.tarifa:last-child{border-bottom:none}
.tarifa b{font-family:var(--disp);font-weight:700;font-size:1.03rem}
.tarifa span{color:var(--soft);font-size:.92rem;flex:1 1 13rem}
.tarifa em{font-style:normal;font-weight:700;color:var(--teal-d);font-variant-numeric:tabular-nums}

/* ── equipo ─────────────────────────────────────────────── */
.equipo{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.4rem}
.persona{background:#fff;border:1px solid var(--linea);border-radius:var(--round);overflow:hidden}
.persona img{aspect-ratio:1/1;object-fit:cover;width:100%}
.persona .txt{padding:1.3rem}
.persona h3{font-family:var(--disp);font-weight:700;font-size:1.08rem;margin:0 0 .2rem}
.persona .rol{margin:0 0 .7rem;font-size:.88rem;color:var(--coral);font-weight:700}
.persona p{margin:0;font-size:.92rem;color:var(--soft)}
.avatar{width:72px;height:72px;border-radius:50%;margin:1.3rem 1.3rem 0;display:grid;place-items:center;
  font-family:var(--disp);font-weight:700;font-size:1.4rem;color:#fff}
.a1{background:var(--teal)} .a2{background:var(--coral)} .a3{background:#3E8E7E} .a4{background:#C79A2E}

/* ── opiniones ──────────────────────────────────────────── */
.voces{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.3rem}
.voz{background:var(--teal-l);border-radius:var(--round);padding:1.6rem;display:flex;flex-direction:column;gap:.9rem}
.voz p{margin:0;font-size:1rem}
.voz footer{font-size:.88rem;color:var(--soft);font-weight:700;margin-top:auto}

/* ── formulario ─────────────────────────────────────────── */
.cita-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:clamp(1.6rem,4vw,2.6rem);align-items:start}
.form-card{background:#fff;border:1px solid var(--linea);border-radius:var(--round);padding:clamp(1.5rem,4vw,2.2rem)}
.campo{margin-bottom:1.15rem}
.campo label{display:block;font-family:var(--disp);font-weight:700;font-size:.8rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--soft);margin-bottom:.45rem}
.campo input,.campo select,.campo textarea{width:100%;font-family:var(--body);font-size:1rem;color:var(--ink);
  padding:.8rem .95rem;border:1px solid #D6E9E4;border-radius:14px;background:var(--shell);
  transition:border-color .25s,box-shadow .25s}
.campo textarea{resize:vertical;min-height:96px}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(31,111,107,.14)}
.campo.mal input,.campo.mal select{border-color:var(--err);background:#FDF3F2}
.error{display:none;color:var(--err);font-size:.85rem;margin-top:.35rem;font-weight:700}
.campo.mal .error{display:block}
.dos{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:430px){.dos{grid-template-columns:1fr}}
.exito{display:none;background:var(--teal-l);border:1px solid #A9D5CF;border-radius:var(--round);padding:1.8rem;text-align:center}
.exito.ver{display:block}
.exito svg{width:52px;height:52px;margin:0 auto .8rem;display:block;stroke:var(--teal);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.exito h3{font-family:var(--disp);font-weight:700;font-size:1.3rem;margin:0 0 .5rem;color:var(--teal-d)}
.exito p{margin:0 0 1.2rem;color:var(--soft);font-size:.96rem}
.form-card.oculto{display:none}
.lateral{display:grid;gap:1rem}
.info{background:#fff;border:1px solid var(--linea);border-radius:var(--round);padding:1.5rem}
.info h3{font-family:var(--disp);font-weight:700;font-size:1.1rem;margin:0 0 .7rem}
.info dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;font-size:.94rem}
.info dt{color:var(--soft)}
.info dd{margin:0;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.info ul{margin:0;padding-left:1.1rem;color:var(--soft);font-size:.94rem;display:grid;gap:.4rem}
.hoy{background:var(--teal);color:#fff;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
  font-weight:700;padding:.12rem .45rem;border-radius:4px;margin-left:.45rem;vertical-align:middle}

/* ── preguntas ──────────────────────────────────────────── */
.faqs{display:grid;gap:.7rem;max-width:50rem}
.faq{background:#fff;border:1px solid var(--linea);border-radius:18px;padding:0 1.4rem;transition:border-color .3s}
.faq[open]{border-color:#A9D5CF}
.faq summary{cursor:pointer;list-style:none;padding:1.15rem 2rem 1.15rem 0;position:relative;font-family:var(--disp);font-weight:700;font-size:1.02rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:.3rem;top:50%;width:10px;height:10px;margin-top:-7px;
  border-right:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:rotate(45deg);transition:transform .3s var(--ease)}
.faq[open] summary::after{transform:rotate(-135deg);margin-top:-3px}
.faq p{margin:0;padding:0 0 1.25rem;color:var(--soft);font-size:.95rem}

/* ── cierre y pie ───────────────────────────────────────── */
.cierre{background:var(--coral);color:#fff}
.cierre .wrap{padding-block:clamp(3rem,8vw,4.2rem);display:flex;flex-wrap:wrap;gap:1.4rem;align-items:center;justify-content:space-between}
.cierre h2{font-family:var(--disp);font-weight:700;font-size:clamp(1.8rem,4.4vw,2.6rem);margin:0;max-width:18ch;line-height:1.12}
.cierre p{margin:.5rem 0 0;color:#FFE3DA;max-width:38ch}

.pie{background:var(--teal-d);color:#B7D8D4;padding-block:3rem 2rem;font-size:.92rem}
.pie-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;padding-bottom:2rem;border-bottom:1px solid #ffffff1f}
.pie h4{font-family:var(--disp);font-weight:700;font-size:1.3rem;color:#fff;margin:0 0 .8rem}
.pie h5{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:#7FB3AE;margin:0 0 .8rem;font-weight:700;font-family:var(--disp)}
.pie ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.pie a{text-decoration:none;transition:color .3s}
.pie a:hover{color:#fff}
.pie-base{padding-top:1.4rem;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;justify-content:space-between;font-size:.85rem;color:#7FB3AE}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
  .pill i{animation:none}
}
