:root{
  --blue:#1f4f8c;
  --blue2:#2c5fa3;
  --text:#2b2b2b;
  --muted:#6c6c6c;
  --bg:#f4f8ff;
  --card:#fff;
  --line: rgba(31,79,140,.18);
  --shadow: 0 10px 25px rgba(0,0,0,.08);
  --radius: 10px;
  --font-title: "Cardo", serif;
  --font: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;

  /* ✅ para pth-formbox */
  --panel: var(--bg);
}

/* =========================
   HOME PAGE
   ========================= */
.home-page{
  width: 100%;
  max-width: none;
  margin: 0;
  overflow-x: clip;
}

/* =========================
   WRAP HOME
   ========================= */
.home-wrap{
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
}

/* =========================
   HERO
   ========================= */
.home-hero{
  position: relative;
  min-height: 360px;
  display:flex;
  align-items:center;
  overflow:hidden;
  top: 47px;
}
.home-hero__bg{
  position:absolute; inset:0;
  background-size: cover;
  background-position:center;
  width: 100%;
  height: 100%;
}
.home-hero__overlay{
  position:absolute; inset:0;
  background: rgba(0,0,0,.35);
}
.home-hero__inner{
  position:relative;
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  padding: 56px 0;
  color:#fff;
}
.home-hero__title{
  font-family: var(--font-title);
  font-weight:700;
  font-size: 64px;
  margin: 0 0 14px 0;
  text-align:center;
}
.home-hero__text{
  margin:0 auto;
  max-width: 1148px;
  line-height: 1.55;
  font-size: 20px;
  opacity: .95;
  text-align: left;
}

/* =========================
   CARDS HOME
   ========================= */
.home-cards{
  background: var(--bg);
  padding: 36px 0 26px;
}
.home-cards__grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  align-items: stretch;
  margin-top: 64px;
  margin-bottom: 32px;
}
.home-card{
  background: var(--card);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  border: 1px solid rgba(31,79,140,.08);
  padding: 22px 22px 18px;
  text-align:center;

  display:flex;
  flex-direction:column;
  height:100%;
}
.home-card__icon{
  width: 56px;
  height: 56px;
  object-fit: contain;
  margin: 6px auto 10px;
  display:block;
}
.home-card__title{
  margin: 0;
  color: #6b6b6b;
  font-family: var(--font-title);
  font-size: 34px;
  font-weight:700;
  line-height:1.15;

  min-height: calc(34px * 1.15 * 2);
  display:flex;
  align-items:center;
  justify-content:center;
}
.home-card__divider{
  width: 68%;
  height: 1px;
  background: var(--line);
  margin: 16px auto 14px;
}
.home-card__list{
  list-style:none;
  padding:0;
  margin: 0;
  text-align:left;
  font-size: 22px;
  color:#4b4b4b;
}
.home-card__list li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding: 8px 0;
  line-height: 1.35;
}
.home-card__list img{
  width: 16px;
  height: 16px;
  margin-top: 1px;
}
.home-card__actions{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:center;
  margin-top:auto;
  padding-top:18px;
}

/* BOTONES */
.home-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 30px;
  padding: 0 18px;
  border-radius: 999px;
  font-size: 11px;
  text-decoration:none;
  cursor:pointer;
  transition: .15s ease;
  user-select:none;
}
.home-btn--ghost{
  border: 1px solid rgba(31,79,140,.65);
  color: var(--blue);
  background:#fff;
}

/* =========================
   BAND
   ========================= */
.home-band{
  position:relative;
  min-height: 320px;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.home-band__bg{
  position:absolute; inset:0;
  background-size: cover;
  background-position:center;
  width: 100%;
  height: 100%;
}
.home-band__overlay{
  position:absolute; inset:0;
  background: rgba(0,0,0,.25);
}
.home-band__inner{
  position:relative;
  color:#fff;
  padding: 44px 0;
}
.home-band__title{
  margin:0 0 12px 0;
  font-family: var(--font-title);
  font-size: 64px;
  font-weight:700;
  text-align: center;
}
.home-band__text{
  margin:0 auto;
  max-width: 1107px;
  font-size: 20px;
  line-height:1.55;
  opacity:.95;
  text-align: center;
}

/* =========================
   TITULOS DE SECCION
   ========================= */
.home-section-title{
  font-family: var(--font-title);
  color: var(--blue);
  font-weight: 700;
  font-size: 64px;
  text-align:center;
  margin: 34px 0 18px;
}

/* =========================
   QUIENES SOMOS
   ========================= */
.home-about{
  background: #fff;
  padding-bottom: 18px;
}
.home-about__box{
  padding: 0 8px;
  color:#4D4C4C;
  font-size: 30px;
  line-height: 1.75;
}
.home-about__box p{ margin: 0 0 16px; }

/* =========================
   EQUIPO CLINICO (SLIDER)
   ========================= */
.home-team{
  background:#fff;
  padding-bottom: 28px;
}
.home-team__slider{
  position:relative;
  margin-top: 12px;
  width: 100%;
  padding-bottom: 148px;
}
.home-team__viewport{
  overflow:hidden;
  width:100%;
}
.home-team__track{
  display:flex;
  gap: 18px;
  transition: transform .35s ease;
  will-change: transform;
}
.home-team__card{
  flex: 0 0 calc((100% - 36px) / 3);
  background:#fff;
  border-radius: var(--radius);
  border: 1px solid rgba(31,79,140,.12);
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  padding: 18px 22px 18px;
  text-align:center;
  min-height: 310px;
}
.home-team__photo{
  width: 78px;
  height: 78px;
  border-radius: 999px;
  object-fit: cover;
  display:block;
  margin: 4px auto 10px;
}
.home-team__name{
  margin:0;
  font-family: var(--font-title);
  font-size: 16px;
  color:#3a3a3a;
}
.home-team__line{
  width: 75%;
  height: 2px;
  background: rgba(0,0,0,.35);
  margin: 12px auto 14px;
}
.home-team__meta{
  list-style:none;
  padding:0;
  margin:0;
  margin-top: 10%;

  width: 75%;
  margin-left:auto;
  margin-right:auto;

  font-family: cardo, serif;
  font-size: 16px;
  line-height:1.55;
  color:#5a5a5a;

  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}
.home-team__meta li{ margin-bottom: 10px; }
.home-team__meta li:last-child{ margin-bottom: 0; }

/* NAV */
.home-team__nav{
  position:absolute;
  bottom: 0;
  width: 101px;
  height: 101px;
  border: none;
  background: transparent;
  padding: 0;
  cursor: pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition: transform .12s ease, opacity .12s ease;
}
.home-team__nav img{
  width: 101px;
  height: 101px;
  display:block;
}
.home-team__nav--prev{ left: 81px; }
.home-team__nav--next{ right: 81px; }
.home-team__nav:active{ transform: scale(.98); }
.home-team__nav:disabled{ opacity: .45; cursor: default; }

/* skeleton */
.home-team__card--empty{ opacity: .55; pointer-events: none; }
.home-team__empty{ width: 100%; height: 100%; padding-top: 6px; }
.home-team__emptyPhoto{
  width: 78px; height: 78px; border-radius: 999px;
  margin: 4px auto 12px;
  background: rgba(0,0,0,.06);
}
.home-team__emptyLine{
  width: 75%; height: 2px;
  margin: 0 auto 16px;
  background: rgba(0,0,0,.12);
}
.home-team__emptyText{
  width: 75%; height: 10px;
  background: rgba(0,0,0,.06);
  border-radius: 6px;
  margin: 10px auto;
}

/* =========================
   FORM BOX (se mantiene)
   ========================= */
.pth-formbox{
  margin-top: 61px;
  background: var(--panel);
}

/* ancho limitado SOLO para el formulario */
.pth-formbox__container{
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
}

.pth-formbox__title{
  padding-top: 65px;
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  font-size: 40px;
  line-height: 1;
  text-align: center;
  color: var(--blue);
}

.pth-form{ margin-top: 116px; padding-bottom: 107px; }

.pth-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px 80px;
}

.pth-field{ display: flex; flex-direction: column; }

.pth-label{
  font-family: "Montserrat", sans-serif;
  font-weight: 300;
  font-size: 16px;
  color: #9AA3AD;
  margin-bottom: 8px;
}

.pth-input,
.pth-textarea{
  border: none;
  border-bottom: 1px solid #8F8F8F;
  background: transparent;
  outline: none;

  font-family: "Montserrat", sans-serif;
  font-weight: 300;
  font-size: 16px;
  color: var(--text);

  padding: 10px 0;
}

.pth-field--tel{ grid-column: 1 / 2; }
.pth-field--msg{ grid-column: 1 / 3; }

.pth-textarea{ resize: none; min-height: 48px; }

.pth-error{
  min-height: 18px;
  margin-top: 6px;
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  color: #C0392B;
}

.pth-submit{
  margin: 106px auto 0;
  display: block;

  width: 239px;
  height: 44px;

  border-radius: 999px;
  border: 1px solid var(--blue);
  background: transparent;
  color: var(--blue);

  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  font-size: 16px;
  cursor: pointer;
}

.pth-submit:hover{ background: rgba(61,112,162,0.08); }

.pth-success,
.pth-backend-errors{
  margin-top: 18px;
  text-align: center;
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
}
.pth-success{ color: #2E7D32; }
.pth-backend-errors{ color: #C0392B; }

/* =========================
   MOBILE (<=700px)
   Container max 700 + tamaños móviles
   ========================= */
@media (max-width: 700px){

  /* ✅ container general móvil */
  .home-wrap{
    max-width: 700px;
    padding: 0 16px;
  }

  /* HERO */
  .home-hero{
    top: 0;
    min-height: 268px;
  }
  .home-hero__inner{
    padding: 28px 0;
    max-width: 700px;
  }
  .home-hero__title{
    font-size: 36px;
    margin-bottom: 10px;
  }
  .home-hero__text{
    font-size: 16px;
    line-height: 1.55;
  }

  /* CARDS */
  .home-cards{
    padding: 18px 0 18px;
  }
  .home-cards__grid{
    grid-template-columns: 1fr;
    gap: 14px;
    margin-top: 18px;
    margin-bottom: 18px;
  }
  .home-card{
    padding: 18px 16px 16px;
  }
  .home-card__icon{
    width: 46px;
    height: 46px;
  }
  .home-card__title{
    font-size: 26px;
    min-height: unset;
  }
  .home-card__list{
    font-size: 16px;
  }
  .home-btn{
    height: 36px;
    font-size: 14px;
    padding: 0 16px;
  }

  /* BAND */
  .home-band{
    min-height: 240px;
  }
  .home-band__inner{
    padding: 28px 0;
  }
  .home-band__title{
    font-size: 32px;
  }
  .home-band__text{
    font-size: 16px;
    line-height: 1.6;
  }

  /* TITULOS */
  .home-section-title{
    font-size: 34px;
    margin: 24px 0 12px;
  }

  /* QUIENES SOMOS */
  .home-about__box{
    font-size: 16px;
    line-height: 1.7;
    padding: 0;
  }

  /* SLIDER */
  .home-team__slider{
    padding-bottom: 110px;
  }
  .home-team__card{
    flex: 0 0 100%;
    min-height: unset;
  }
  .home-team__nav{
    width: 64px;
    height: 64px;
  }
  .home-team__nav img{
    width: 64px;
    height: 64px;
  }
  .home-team__nav--prev{ left: 12px; }
  .home-team__nav--next{ right: 12px; }

  /* FORM BOX (dentro de home) */
  .pth-formbox__container{
    max-width: 700px;
    padding: 0 16px;
  }
  .pth-formbox__title{
    font-size: 18px;
    padding-top: 26px;
    line-height: 1.25;
  }
  .pth-form{
    margin-top: 22px;
    padding-bottom: 26px;
  }
  .pth-grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .pth-field--tel{ grid-column: auto; }
  .pth-field--msg{ grid-column: auto; }
  .pth-submit{
    width: 100%;
    margin-top: 18px;
  }
}