@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&family=Libre+Caslon+Display&display=swap');*{box-sizing:border-box}body{margin:0;background:#fbf8f3;color:#39372f;font-family:'DM Sans',Arial,sans-serif}a{text-decoration:none;color:inherit}header{height:125px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:#fbf8f3}.logo{width:270px;max-height:105px}nav{display:flex;gap:30px;align-items:center;text-transform:uppercase;font-size:13px}.btn{display:inline-block;background:#858a6d;color:white;padding:15px 24px;border-radius:8px;letter-spacing:1px}.hero{height:600px}.hero img{width:100%;height:100%;object-fit:cover;filter:none}.welcome{text-align:center;padding:70px 20px}.welcome h1{font:400 62px/1.12 'Libre Caslon Display',Georgia,serif;color:#686a58;margin:0}.welcome p{font-size:20px;line-height:1.7;margin:28px 0}section{padding:65px 7vw}h2{font-size:22px;letter-spacing:3px;font-weight:400}.days{display:grid;grid-template-columns:2fr 1fr;border-top:1px solid #d8cfc2;border-bottom:1px solid #d8cfc2}.days>div{padding:28px;border-right:1px solid #d8cfc2}.days h3{font-size:15px;letter-spacing:1.5px}.days p{font-size:16px;line-height:2}.prices{display:grid;grid-template-columns:1fr 1fr;padding:0 7vw}.prices section{padding:60px 35px}.prices section:first-child{border-right:1px solid #d8cfc2}.row{display:grid;grid-template-columns:1.3fr .65fr .4fr;gap:15px;align-items:center;padding:20px 0;border-bottom:1px solid #d8cfc2}.row b{display:block;font-size:16px;text-transform:uppercase}.row small{display:block;font-size:13px;margin-top:5px}.row strong{font-size:19px;font-weight:400}.row>a{font-size:12px;color:#858a6d;text-transform:uppercase}.contact{background:#858a6d;color:white;display:grid;grid-template-columns:repeat(3,1fr)}.contact div{display:flex;flex-direction:column;gap:8px;padding:10px 35px;border-right:1px solid #ffffff66}.contact b{font-size:14px;letter-spacing:2px}.contact a{font-size:16px}footer{text-align:center;padding:30px}footer img{width:130px}footer p{font-size:11px}@media(max-width:850px){header nav a:not(.btn){display:none}.logo{width:200px}.hero{height:420px}.welcome h1{font-size:44px}.welcome p{font-size:18px}.days,.prices,.contact{grid-template-columns:1fr}.prices section{padding:45px 0}.prices section:first-child{border-right:0}.row{grid-template-columns:1.2fr .8fr}.row>a{grid-column:1/-1}.contact div{border-right:0;border-bottom:1px solid #ffffff55;padding:20px 0}}
/* v13 · Misión y Visión */
.purpose{
  padding:78px 7vw 84px;
  background:#f1eee7;
  border-top:1px solid #d8cfc2;
  border-bottom:1px solid #d8cfc2;
}
.purpose-kicker{
  margin-bottom:35px;
  font-size:13px;
  letter-spacing:3px;
  color:#858a6d;
}
.purpose-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid #d8cfc2;
}
.purpose article{
  padding:42px 48px 25px 0;
}
.purpose article+article{
  padding-left:48px;
  border-left:1px solid #d8cfc2;
}
.purpose article span{
  display:block;
  margin-bottom:22px;
  font-size:12px;
  letter-spacing:2px;
  color:#858a6d;
}
.purpose h2{
  margin:0 0 24px;
  font-family:'Libre Caslon Display',Georgia,serif;
  font-size:39px;
  font-weight:400;
  letter-spacing:0;
  color:#686a58;
}
.purpose p{
  max-width:650px;
  margin:0;
  font-size:17px;
  line-height:1.9;
  font-weight:300;
}
@media(max-width:850px){
  .purpose{padding:55px 7vw 60px}
  .purpose-grid{grid-template-columns:1fr}
  .purpose article,.purpose article+article{
    padding:34px 0;
    border-left:0;
  }
  .purpose article+article{border-top:1px solid #d8cfc2}
  .purpose h2{font-size:34px}
  .purpose p{font-size:16px;line-height:1.8}
}

/* ÚNICO cambio sobre v13: foto cuadrada a la derecha de Visión */
.purpose-grid-final{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) 320px;
  gap:38px;
  align-items:start;
}
.purpose-grid-final article{
  padding:42px 0 25px;
}
.purpose-grid-final article+article{
  padding-left:0;
  border-left:0;
}
.purpose-square-photo{
  width:320px;
  aspect-ratio:1/1;
  margin-top:42px;
  overflow:hidden;
}
.purpose-square-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 28%;
  display:block;
  filter:none;
}
@media(max-width:850px){
  .purpose-grid-final{grid-template-columns:1fr}
  .purpose-square-photo{width:min(100%,320px);margin:10px auto 0}
}

/* v17 · Foto grande ocupando la altura visual de Nuestra Esencia */
.purpose-grid-final{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(430px,.95fr);
  gap:38px;
  align-items:stretch;
}
.purpose-square-photo{
  width:100%;
  height:100%;
  min-height:520px;
  margin-top:0;
  overflow:hidden;
  align-self:stretch;
}
.purpose-square-photo img{
  width:100%;
  height:100%;
  min-height:520px;
  display:block;
  object-fit:cover;
  object-position:center 28%;
  filter:none;
}
@media(max-width:850px){
  .purpose-grid-final{grid-template-columns:1fr}
  .purpose-square-photo{
    width:100%;
    min-height:420px;
    aspect-ratio:1/1;
    margin:10px 0 0;
  }
  .purpose-square-photo img{min-height:420px}
}

/* v18 · Foto circular a la derecha de Visión */
.purpose-grid-final{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) 430px;
  gap:38px;
  align-items:center;
}
.purpose-square-photo{
  width:430px;
  height:430px;
  min-height:0;
  margin:0;
  border-radius:50%;
  overflow:hidden;
  align-self:center;
}
.purpose-square-photo img{
  width:100%;
  height:100%;
  min-height:0;
  display:block;
  object-fit:cover;
  object-position:center 28%;
  border-radius:50%;
  filter:none;
}
@media(max-width:850px){
  .purpose-grid-final{grid-template-columns:1fr}
  .purpose-square-photo{
    width:min(82vw,380px);
    height:min(82vw,380px);
    min-height:0;
    aspect-ratio:1/1;
    margin:16px auto 0;
  }
  .purpose-square-photo img{min-height:0}
}

/* v19 · Horarios semanales estilo tabla */
.weekly-schedule{
  padding:78px 7vw 82px;
  background:#f8f3ed;
  border-top:1px solid #ded5ca;
  border-bottom:1px solid #ded5ca;
}
.weekly-heading{
  text-align:center;
  margin-bottom:38px;
}
.weekly-heading p{
  margin:0 0 10px;
  font-size:12px;
  letter-spacing:2.5px;
  color:#858a6d;
}
.weekly-heading h2{
  margin:0;
  font-family:'Libre Caslon Display',Georgia,serif;
  font-size:42px;
  font-weight:400;
  letter-spacing:.04em;
  color:#39372f;
}
.weekly-heading span{
  display:block;
  margin-top:12px;
  font-size:13px;
  color:#6e695f;
}
.schedule-scroll{overflow-x:auto;padding-bottom:6px}
.schedule-table{
  min-width:980px;
  display:grid;
  grid-template-columns:105px repeat(6, minmax(125px, 1fr));
  gap:12px;
  align-items:stretch;
}
.corner-cell{min-height:52px}
.day-header{
  min-height:52px;
  border-radius:28px;
  background:#eee7df;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:500;
  letter-spacing:1.6px;
  text-transform:uppercase;
}
.time-label{
  min-height:58px;
  border-radius:28px;
  background:#eee7df;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
}
.schedule-cell{
  min-height:58px;
  border-radius:28px;
  background:#f0e9e2;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  transition:.2s ease;
  border:1px solid transparent;
}
.schedule-cell.available:hover{
  background:#e1e4d7;
  border-color:#9ca188;
  transform:translateY(-1px);
}
.schedule-cell.available span{
  font-size:13px;
  font-weight:500;
}
.schedule-cell.available small{
  margin-top:2px;
  font-size:9px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:#858a6d;
}
.schedule-cell.unavailable{
  background:#f5f0eb;
  opacity:.55;
}
@media(max-width:850px){
  .weekly-schedule{padding:55px 5vw 60px}
  .weekly-heading h2{font-size:34px}
  .schedule-table{min-width:900px}
}

/* v20 · División Mañana / Tarde */
.period-label{
  grid-column:1 / 2;
  display:flex;
  align-items:center;
  min-height:38px;
  font-size:11px;
  font-weight:500;
  letter-spacing:2.2px;
  color:#858a6d;
}
.period-line{
  grid-column:2 / -1;
  align-self:center;
  height:1px;
  background:#d8cfc2;
}
.afternoon-label{margin-top:10px}
