@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500;1,600&family=Inter:wght@400;500;600;700&display=swap");

/* --- Añadidos exclusivos de la nueva HOME de Casa Millo ---
   Mover estas reglas a styles.css cuando esta HOME quede aprobada,
   para mantener el diseño en un único archivo como en el resto del sitio. */

.value-row{ justify-content:center; margin-top:26px; }
.value-row span{ font-family:"Inter","Helvetica Neue",Arial,sans-serif; }

.teaser-grid-2{ grid-template-columns:repeat(2,1fr); max-width:820px; margin-left:auto; margin-right:auto; }
@media (max-width:600px){ .teaser-grid-2{ grid-template-columns:1fr; } }

.feature-split{
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;
}
.feature-split .feature-photo{ border-radius:20px; overflow:hidden; box-shadow:0 30px 60px -30px rgba(43,42,38,0.35); }
.feature-split .feature-photo img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.feature-split .feature-copy p{ color:var(--ink-soft); }
@media (max-width:820px){ .feature-split{ grid-template-columns:1fr; gap:28px; } }

.advantage-list{
  list-style:none; margin:24px 0 0; padding:0;
  display:grid; grid-template-columns:repeat(3,1fr); gap:18px;
  font-family:"Inter","Helvetica Neue",Arial,sans-serif;
}
.advantage-list li{
  background:#fff; border:1px solid rgba(43,42,38,0.08); border-radius:14px;
  padding:18px 20px; font-size:0.92rem; color:var(--ink-soft);
}
.advantage-list strong{ display:block; color:var(--ink); font-size:0.98rem; margin-bottom:4px; }
@media (max-width:820px){ .advantage-list{ grid-template-columns:1fr; } }

.quote-card{ display:flex; flex-direction:column; gap:12px; }
.quote-card blockquote{ margin:0; font-family:"Cormorant Garamond","Georgia",serif; font-style:italic; color:var(--ink); font-size:1.02rem; }
.quote-card cite{ font-style:normal; font-family:"Inter","Helvetica Neue",Arial,sans-serif; font-size:0.82rem; color:var(--ink-soft); }
.reviews-note{
  margin-top:22px; font-size:0.85rem; color:var(--ink-soft);
  font-family:"Inter","Helvetica Neue",Arial,sans-serif; border-top:1px solid rgba(43,42,38,0.1); padding-top:16px;
}

.faq-list{ margin-top:8px; max-width:74ch; }
.faq-item{ border-bottom:1px solid rgba(43,42,38,0.12); padding:18px 0; }
.faq-item summary{
  cursor:pointer; font-family:"Inter","Helvetica Neue",Arial,sans-serif; font-weight:600;
  color:var(--ink); list-style:none; display:flex; justify-content:space-between; gap:16px;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:"+"; color:var(--accent); font-size:1.2rem; }
.faq-item[open] summary::after{ content:"\2013"; }
.faq-item p{ color:var(--ink-soft); margin:12px 0 0; max-width:64ch; }


/* v16 · Home typography */
.quote-card blockquote{
  font-family:"Cormorant Garamond","Georgia",serif;
  font-size:1.16rem;
  line-height:1.35;
}
.value-row span,
.quote-card cite,
.faq summary{
  font-family:"Inter","Helvetica Neue",Arial,sans-serif;
}


/* v21 · Lectura HOME */
@media (min-width:821px){
  .faq-list{
    max-width:78ch;
  }
  .faq-item p{
    max-width:70ch;
  }
}


/* v31 · ubicación, orientación de precios y móvil */
.home-quick-info{
  padding:16px 0 8px;
  background:#f7f3ed;
}
.quick-info-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:14px;
}
.quick-info-grid > div{
  background:#fff;
  border:1px solid rgba(43,42,38,.10);
  border-radius:12px;
  padding:16px 18px;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.quick-info-label{
  font-family:"Inter","Helvetica Neue",Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.10em;
  font-size:.70rem;
  color:var(--accent);
  font-weight:700;
}
.quick-info-grid strong{
  font-family:"Cormorant Garamond","Georgia","Times New Roman",serif;
  font-size:1.18rem;
  font-weight:600;
}
.quick-info-grid small{
  color:var(--ink-soft);
  font-size:.82rem;
}
.quick-info-note{
  margin:8px 2px 0;
  color:var(--ink-soft);
  font-size:.78rem;
}
.recommendation-link{
  margin-top:14px;
}
.recommendation-link .btn{
  padding:8px 13px;
  font-size:.78rem;
}

@media(max-width:820px){
  .quick-info-grid{
    grid-template-columns:1fr;
    gap:8px;
  }
  .quick-info-grid > div{
    padding:13px 15px;
  }
  /* La foto lateral del hero duplicaba visualmente el carrusel en móvil. */
  .hero .hero-photo{
    display:none !important;
  }
  .hero{
    grid-template-columns:1fr !important;
  }
}


/* v33 · bloque visible de ubicación, precios y mapa */
.home-location-pricing{
  background:#f3eee6;
  padding:34px 0 38px !important;
  border-top:1px solid rgba(43,42,38,.08);
  border-bottom:1px solid rgba(43,42,38,.08);
}
.location-pricing-head{
  margin-bottom:22px;
}
.location-pricing-head h2{
  margin:4px 0 6px;
}
.location-pricing-head > p:last-child{
  margin:0;
  color:var(--ink-soft);
}
.location-pricing-grid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:24px;
  align-items:stretch;
}
.pricing-panel{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  align-content:start;
}
.price-card{
  background:#fff;
  border:1px solid rgba(43,42,38,.11);
  border-radius:12px;
  padding:20px;
  box-shadow:0 16px 36px -30px rgba(43,42,38,.35);
}
.price-kicker{
  display:block;
  font:700 .72rem/1.2 "Inter","Helvetica Neue",Arial,sans-serif;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:8px;
}
.price-value{
  display:block;
  font:600 2rem/1 "Cormorant Garamond","Georgia","Times New Roman",serif;
  color:var(--ink);
}
.price-unit{
  display:block;
  margin-top:3px;
  color:var(--ink-soft);
  font-size:.82rem;
}
.price-card p{
  margin:12px 0 0;
  color:var(--ink-soft);
  font-size:.9rem;
}
.pricing-disclaimer{
  grid-column:1/-1;
  margin:4px 0 0;
  color:var(--ink-soft);
  font-size:.82rem;
}
.pricing-panel > .btn{
  grid-column:1/-1;
  justify-self:start;
  margin-top:4px;
}
.map-panel{
  min-height:310px;
  border:10px solid #fff;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 18px 42px -30px rgba(43,42,38,.4);
  background:#ddd4c7;
}
.map-panel iframe{
  width:100%;
  height:100%;
  min-height:310px;
  border:0;
  display:block;
}
@media(max-width:820px){
  .home-location-pricing{
    padding:24px 0 28px !important;
  }
  .location-pricing-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .pricing-panel{
    grid-template-columns:1fr;
  }
  .pricing-disclaimer,
  .pricing-panel > .btn{
    grid-column:1;
  }
  .map-panel,
  .map-panel iframe{
    min-height:260px;
  }
}

/* v34 · mapa de ubicación desbloqueado por CSP */
.map-panel{
  position:relative;
  display:flex;
  flex-direction:column;
}
.map-panel iframe{
  flex:1 1 auto;
  width:100%;
  min-height:340px;
}
.open-map-link{
  display:block;
  padding:12px 14px;
  background:#fff;
  border-top:1px solid rgba(43,42,38,.10);
  font:600 .82rem/1.3 "Inter","Helvetica Neue",Arial,sans-serif;
  text-decoration:none;
  text-align:center;
}
@media(max-width:820px){
  .map-panel iframe{ min-height:280px; }
}


/* v35 · preview local visible en index-nuevo */
.preview-location-pricing{
  background:#f4efe8;
  padding:36px 0 42px;
  border-top:1px solid rgba(43,42,38,.08);
  border-bottom:1px solid rgba(43,42,38,.08);
}
.preview-section-head{
  margin-bottom:24px;
}
.preview-section-head h2{
  margin:4px 0 6px;
}
.preview-section-head > p:last-child{
  margin:0;
  color:var(--ink-soft);
}
.preview-location-pricing-grid{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:24px;
  align-items:stretch;
}
.preview-prices{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  align-content:start;
}
.preview-price-card{
  background:#fff;
  border:1px solid rgba(43,42,38,.10);
  border-radius:14px;
  padding:20px;
  box-shadow:0 16px 34px -28px rgba(43,42,38,.34);
}
.preview-price-name{
  display:block;
  font:700 .72rem/1.2 "Inter","Helvetica Neue",Arial,sans-serif;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:9px;
}
.preview-price-card strong{
  display:block;
  font:600 2.1rem/1 "Cormorant Garamond","Georgia","Times New Roman",serif;
  color:var(--ink);
}
.preview-price-card > span:not(.preview-price-name){
  display:block;
  margin-top:4px;
  color:var(--ink-soft);
  font-size:.84rem;
}
.preview-price-card p{
  margin:13px 0 0;
  color:var(--ink-soft);
  font-size:.92rem;
}
.preview-price-note{
  grid-column:1/-1;
  margin:4px 0 0;
  color:var(--ink-soft);
  font-size:.82rem;
}
.preview-prices > .btn{
  grid-column:1/-1;
  justify-self:start;
  margin-top:2px;
}
.preview-map-wrap{
  background:#fff;
  border:10px solid #fff;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 18px 42px -30px rgba(43,42,38,.40);
}
.preview-map-title{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:baseline;
  padding:10px 8px 14px;
}
.preview-map-title strong{
  font-family:"Cormorant Garamond","Georgia","Times New Roman",serif;
  font-size:1.35rem;
}
.preview-map-title span{
  color:var(--ink-soft);
  font-size:.82rem;
}
.preview-local-map{
  width:100%;
  height:auto;
  display:block;
  background:#eee7dd;
  border-radius:8px;
}
.preview-map-actions{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  padding:12px 8px 4px;
  font-size:.82rem;
}
.preview-map-actions span{
  color:var(--ink-soft);
}
.preview-map-actions a{
  font-weight:700;
  text-decoration:none;
}
@media(max-width:820px){
  .preview-location-pricing{
    padding:26px 0 30px;
  }
  .preview-location-pricing-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .preview-prices{
    grid-template-columns:1fr;
  }
  .preview-price-note,
  .preview-prices > .btn{
    grid-column:1;
  }
  .preview-map-title,
  .preview-map-actions{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* v39 · escalera completa sin recorte */
.home-opening-carousel .carousel-slide img.opening-stair-photo{
  object-fit:contain !important;
  object-position:center !important;
  background:#f2eee7;
}


/* v41 · escalera y baño completos en carrusel inicial */
.home-opening-carousel .opening-stair-photo,
.home-opening-carousel .opening-bath-photo{
  object-fit:contain !important;
  object-position:center !important;
  background:#ebe5dc;
}


/* v43 · sincronización final de carrusel e imágenes verticales */
.home-opening-carousel .carousel-slide img.opening-stair-photo,
.home-opening-carousel .carousel-slide img.opening-bath-photo{
  object-fit:contain !important;
  object-position:center !important;
  background:#ebe5dc;
}


/* v45 · alojamiento: galerías máximas e idénticas en todos los idiomas */
.carousel.carousel-hero{
  background:#ebe5dc;
}
.carousel.carousel-hero .carousel-slide{
  background:#ebe5dc;
}
.carousel.carousel-hero .carousel-slide img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  animation:none !important;
  transform:none !important;
}
.carousel.carousel-hero .carousel-slide img.gallery-portrait-photo{
  object-fit:contain !important;
}
.carousel.carousel-hero .carousel-dots{
  display:none !important;
}
@media(min-width:821px){
  .carousel.carousel-hero{
    height:min(72vh, 760px) !important;
    min-height:540px;
  }
}
@media(max-width:820px){
  .carousel.carousel-hero{
    height:auto !important;
    aspect-ratio:4 / 3;
    min-height:0;
  }
}
.de-house-gallery-section{
  padding:38px 0;
}
.de-house-gallery-section h2{
  margin-bottom:18px;
}

/* v45 · PT/FR: textos largos sin romper el diseño */
.nav, .nav > ul, .preview-location-pricing-grid, .preview-prices,
.preview-price-card, .preview-map-wrap, .preview-section-head{
  min-width:0;
}
.preview-price-card p, .preview-price-note, .preview-section-head p,
.preview-map-title span, .preview-map-actions, .preview-map-actions a{
  overflow-wrap:anywhere;
}
.preview-prices > .btn{
  max-width:100%;
  white-space:normal;
  text-align:center;
}
@media(min-width:1081px) and (max-width:1320px){
  .nav{ padding-left:18px; padding-right:18px; gap:14px; }
  .nav > ul{ gap:15px; }
  .nav > ul a{ font-size:.80rem; }
  .lang-switch{ white-space:nowrap; gap:2px; font-size:.72rem; }
  .nav-phone{ display:none; }
}
@media(max-width:950px){
  .preview-location-pricing-grid{ grid-template-columns:1fr; }
}


/* v46 · homogeneidad tipográfica y de formato multidioma */
main section:not(.home-opening){box-sizing:border-box}
.page-hero h1,.hero h1{max-width:18ch}
.page-hero .lead,.hero .lead,.guide-copy-wide p,.house-copy p{max-width:920px}
.house-copy,.guide-copy-wide,.multilang-context .wrap,.v28-rich .guide-copy-wide,.v29-parity .guide-copy-wide{width:100%;max-width:1040px}
.house-copy h2,.guide-copy-wide h2{max-width:24ch}
.facts{display:flex;flex-wrap:wrap;gap:8px 10px}
.facts span{white-space:normal}
.amenities{columns:2;column-gap:34px}
.amenities li{break-inside:avoid;margin-bottom:7px}
.home-traits{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.home-traits span{padding:12px 14px;background:#f5f1eb;border-radius:10px;text-align:center;font-size:.86rem}
.home-house-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}
.house-mini{display:flex;flex-direction:column;gap:5px;padding:20px;background:#fff;border:1px solid rgba(43,42,38,.10);border-radius:12px;text-decoration:none}
.editorial-card-grid,.recommendation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}
.editorial-card,.recommendation-card{padding:22px;background:#fff;border:1px solid rgba(43,42,38,.10);border-radius:12px}
.editorial-card h3,.recommendation-card h3{margin:6px 0 8px}
.distance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}
.distance-grid>div{display:flex;flex-direction:column;gap:4px;padding:18px;background:#fff;border-radius:10px}
.parity-practical-note{margin-top:18px;padding:16px 18px;background:#f5f1eb;border-radius:10px}
.gastronomy-parity{padding-top:34px;padding-bottom:38px}
@media(max-width:950px){.editorial-card-grid,.recommendation-grid,.home-house-grid,.distance-grid{grid-template-columns:1fr}.home-traits{grid-template-columns:1fr 1fr}.amenities{columns:1}.page-hero h1,.hero h1{max-width:none}}
@media(max-width:560px){.home-traits{grid-template-columns:1fr}.editorial-card,.recommendation-card{padding:18px}.house-copy h2,.guide-copy-wide h2{max-width:none}}


/* v47 · paridad de profundidad entre idiomas */
.home-depth-parity{margin-top:28px;padding-top:22px;border-top:1px solid rgba(43,42,38,.10)}
.home-depth-parity h3,.history-depth-parity h3{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.55rem;margin:22px 0 7px}
.home-depth-parity p,.history-depth-parity p{max-width:920px;margin:0 0 10px}
.history-depth-parity{margin-top:26px}


/* v48 · precio/ubicación: geometría idéntica en todos los idiomas */
.preview-location-pricing .wrap{
  width:min(1220px, calc(100% - 96px));
  max-width:1220px;
  margin-left:auto;
  margin-right:auto;
}
.preview-location-pricing-grid{
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr) !important;
  gap:24px !important;
  align-items:stretch !important;
}
.preview-prices{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:12px !important;
}
.preview-price-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:166px;
}
.preview-price-card strong{
  white-space:nowrap;
}
.preview-price-card p{
  margin-top:auto;
}
.preview-price-note{
  grid-column:1/-1 !important;
}
.preview-prices > .btn{
  grid-column:1/-1 !important;
  justify-self:start;
}
.preview-map-wrap{
  min-width:0;
}
@media(max-width:950px){
  .preview-location-pricing .wrap{
    width:auto;
    max-width:none;
    margin-left:auto;
    margin-right:auto;
  }
  .preview-location-pricing-grid{
    grid-template-columns:1fr !important;
  }
}
@media(max-width:820px){
  .preview-location-pricing .wrap{
    padding-left:22px;
    padding-right:22px;
  }
  .preview-prices{
    grid-template-columns:1fr !important;
  }
  .preview-price-card{
    min-height:0;
  }
  .preview-price-note,
  .preview-prices > .btn{
    grid-column:1 !important;
  }
}
