/* Un marco compartido para Inicio, Ofertas, LePoints y 404. */
.pv5-header, .pv5-footer {
  box-sizing: border-box;
  width: min(1200px, calc(100% - 48px));
  margin-inline: auto;
  color: #f4edf7;
  font: 400 13px/1.5 'DM Sans', sans-serif;
  font-synthesis: none;
}
.pv5-header { min-height: 100px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid #d8b9ce30; }
.pv5-header a, .pv5-footer a { color: inherit; text-decoration: none; }
.pv5-logo { display: flex; align-items: center; width: 152px; min-width: 152px; height: 52px; }
.pv5-logo img { display: block; width: 152px; height: 52px; object-fit: cover; filter: none; }
.pv5-header .pv5-logo img, .pv5-footer .pv5-logo img { transform: translateX(-15.8%); }
.pv5-header .pv5-nav, .pv5-footer .pv5-nav { display: flex; align-items: center; gap: 24px; margin: 0; }
.pv5-nav a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 0; background: none; color: #c1b1cb; font-size: 13px; }
.pv5-nav a[aria-current='page'] { color: #f4edf7; text-decoration: underline; text-decoration-color: #d8b9ce; text-underline-offset: 7px; }
.pv5-nav a:hover, .pv5-footer a:hover { color: #edc0d1; background: none; }
.pv5-header a:focus-visible, .pv5-footer a:focus-visible { outline: 2px solid #edc0d1; outline-offset: 4px; }
.pv5-footer { padding-block: 36px 30px; margin-top: 48px; border-top: 1px solid #d8b9ce28; }
.pv5-footer-top { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: center; gap: 24px; }
.pv5-footer .pv5-nav { justify-content: center; }
.pv5-social { display: flex; justify-content: flex-end; gap: 10px; }
.pv5-social a {
  box-sizing: border-box;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border: 1px solid transparent;
  border-radius: 50%;
  color: #edc0d1;
  background: linear-gradient(#2c2338, #2c2338) padding-box,
    linear-gradient(130deg, #edc0d150, #edc0d112 55%, #edc0d135) border-box;
}
.pv5-social a:hover { background: linear-gradient(#382638, #382638) padding-box, linear-gradient(130deg, #edc0d170, #edc0d118 55%, #edc0d145) border-box; }
.pv5-social .pv6-facebook { fill: currentColor; stroke: none; }
.pv5-social svg { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.pv5-address { margin: 14px 0 0; color: #c1b1cb; font-size: 12px; font-style: normal; line-height: 1.8; }
.pv5-address span { display: block; }
.pv6-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 21px; padding-top: 13px; border-top: 1px solid #d8b9ce28; }
.pv5-rubros { display: flex; flex-wrap: wrap; gap: 4px 16px; list-style: none; margin: 0; padding: 0; color: #c1b1cb; font-size: 11px; line-height: 1.8; }
.pv5-rubros li { white-space: nowrap; }
.pv5-small-links { display: flex; flex-shrink: 0; flex-wrap: wrap; gap: 4px 24px; color: #c1b1cb; }
.pv5-small-links a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; font-size: 11px; }
.pv5-memorial { margin: 18px 0 0; color: #d8b9ce; font-size: 11px; }
.ofv4-shell > .pv5-header, .ofv4-shell > .pv5-footer { width: 100%; }
body.lepoints-page > .pv5-header, body.lepoints-page > .pv5-footer { width: min(1200px, 100%); }
body:has(> .pv5-header) > main:has(> .status) { min-height: 60svh; padding-block: 48px; }
body:has(> .pv5-header) > main > .status { margin-top: 0; }
@media (max-width: 1100px) {
  .pv6-footer-bottom { flex-wrap: wrap; }
  .pv5-small-links { margin-left: auto; }
}
@media (max-width: 650px) {
  .pv5-header, .pv5-footer { width: calc(100% - 36px); }
  .pv5-header { min-height: 88px; gap: 12px; }
  .pv5-logo { width: 114px; min-width: 114px; }
  .pv5-logo img { width: 114px; height: 44px; }
  .pv5-header .pv5-nav, .pv5-footer .pv5-nav { gap: 14px; }
  .pv5-nav a { font-size: 11px; }
  .pv5-footer { margin-top: 32px; }
  .pv5-footer { display: grid; grid-template-columns: minmax(0,1fr) max-content minmax(0,1fr); justify-items: center; padding-top: 30px; text-align: center; }
  .pv5-footer-top { display: contents; }
  .pv5-footer .pv5-logo { grid-column: 2; grid-row: 1; justify-self: start; width: 152px; min-width: 152px; }
  .pv5-footer .pv5-logo img { width: 152px; height: 52px; }
  .pv5-footer .pv5-nav { grid-column: 1 / -1; grid-row: 2; gap: 27px; margin-top: 20px; }
  .pv5-footer .pv5-nav a { font-size: 13px; }
  .pv5-social { grid-column: 1 / -1; grid-row: 4; justify-content: center; gap: 12px; margin-top: 23px; }
  .pv5-address { grid-column: 2; grid-row: 3; justify-self: start; margin-top: 18px; text-align: left; }
  .pv6-footer-bottom { grid-column: 1 / -1; grid-row: 5; width: 100%; flex-direction: column; gap: 8px; margin-top: 26px; padding-top: 18px; }
  .pv5-memorial { grid-column: 1 / -1; }
  .pv5-rubros { justify-content: center; gap: 4px 12px; }
  .pv5-small-links { justify-content: center; gap: 23px; margin: 0; }
}
@media (max-width: 600px) {
  /* El encabezado comparte el eje de 24px de la tarjeta móvil. Los marcos
     heredados tienen tres orígenes distintos, por eso el ajuste es acotado. */
  .pv5-header .pv5-logo { transform: translateX(6px); }
  .ofv4-shell > .pv5-header .pv5-logo { transform: translateX(2px); }
  body.lepoints-page > .pv5-header .pv5-logo { transform: translateX(8px); }

  /* El SVG tiene 2.5px de tinta hacia la izquierda de su caja: se centra la
     tinta visible, no la caja de 152px. */
  .pv5-footer .pv5-logo img { transform: translateX(1.65%); }
  .pv5-footer .pv5-address { text-align: center; }
}
@media (max-width: 359px) {
  .pv5-header { flex-wrap: wrap; padding-block: 8px; gap: 0; }
  .pv5-header .pv5-nav { width: 100%; justify-content: space-between; }
}

.hero-description { margin: 24px 0 0; max-width: 48ch; color: #c1b1cb; font: 400 14px/1.5 "DM Sans", sans-serif; text-wrap: pretty; }
.pv5-symbol { display: inline-block; width: 1em; height: 1em; vertical-align: -.12em; flex-shrink: 0; }
.card-symbol .pv5-symbol { width: 32px; height: 32px; }
.review-slot figcaption a, .google-label { align-items: center; gap: 5px; }
