/* Tipografía fluida: legible y proporcional en celular, tablet y escritorio. */
body { font-size: clamp(17px, 0.88vw, 22px); }
small { font-size: clamp(11px, 0.62vw, 15px); letter-spacing: .14em; }
header { min-height: clamp(94px, 7vw, 132px); height:auto; }
header .logo { font-size: clamp(50px, 3.55vw, 78px); width:clamp(100px, 6.5vw, 145px); }
nav { gap:clamp(19px, 1.55vw, 37px); font-size:clamp(12px, .68vw, 16px); letter-spacing:.08em; }

.hero-copy p { font-size:clamp(17px, 1vw, 24px); line-height:1.5; }
.hero-copy button, .guide button { font-size:clamp(12px, .68vw, 16px); padding:clamp(12px,.76vw,17px) clamp(16px,1.15vw,24px); }
.hero h1 { font-size:clamp(48px, 4vw, 84px); }
.hero-foot small { font-size:clamp(9px, .5vw, 13px); }

.collection-row b { font-size:clamp(11px, .58vw, 15px); }
.collection-foot small { font-size:clamp(11px, .6vw, 15px); }
.guide h2, .products h2 { font-size:clamp(42px, 3.45vw, 72px); }
.guide p, .products-intro > p { font-size:clamp(15px, .84vw, 20px); line-height:1.55; max-width:34ch; }

.copy small { font-size:clamp(11px, .55vw, 14px); }
.copy h3 { font-size:clamp(32px, 2.35vw, 49px); }
.copy p { font-size:clamp(14px, .75vw, 18px); line-height:1.45; }
.copy a { font-size:clamp(12px, .65vw, 16px); }

.video h2, .visit h2 { font-size:clamp(43px, 3.45vw, 72px); }
.video p:not(.serif), .visit p { font-size:clamp(15px, .82vw, 20px); line-height:1.55; }
.video .serif { font-size:clamp(23px, 1.4vw, 31px); }
.video-copy > a, .visit a:not(.map) { font-size:clamp(14px, .7vw, 17px); }

footer {
  min-height:clamp(220px, 16vw, 300px);
  padding-top:clamp(42px, 3.5vw, 66px);
  padding-bottom:clamp(64px, 4.5vw, 88px);
  grid-template-columns:minmax(190px, 32%) 68%;
  align-items:start;
}
footer .logo {
  width:clamp(104px, 7vw, 145px);
  font-size:clamp(48px, 3.5vw, 72px);
}
footer > div:first-child p {
  margin-top:clamp(16px, 1.2vw, 24px);
  font-size:clamp(14px, .78vw, 18px);
}
.footer-links { gap:clamp(30px, 4vw, 76px); }
.footer-links div {
  gap:clamp(7px, .55vw, 11px);
  font-size:clamp(14px, .76vw, 18px);
}
.footer-links b {
  margin-bottom:clamp(8px, .65vw, 13px);
  font-size:clamp(12px, .68vw, 16px);
}
.bottom {
  bottom:clamp(16px, 1.4vw, 26px);
  padding-top:clamp(10px, .85vw, 16px);
  font-size:clamp(11px, .58vw, 14px);
}

@media (max-width:700px) {
  body { font-size:16px; }
  header { min-height:82px; }
  header .logo { font-size:46px; width:88px; }
  .hero h1 { font-size:52px; }
  .hero-copy p { font-size:16px; }
  .guide h2, .products h2, .video h2, .visit h2 { font-size:47px; }
  .copy h3 { font-size:34px; }
  .copy p, .guide p, .products-intro > p, .video p:not(.serif), .visit p { font-size:15px; }
  .collection-row b { font-size:10px; }
  footer {
    min-height:0;
    padding:42px 24px 76px;
  }
  footer .logo { width:96px; font-size:46px; }
  footer > div:first-child p { font-size:14px; }
  .footer-links {
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:28px 22px;
    margin-top:36px;
  }
  .footer-links div { gap:8px; font-size:14px; }
  .footer-links b { font-size:12px; }
  .bottom {
    left:24px;
    right:24px;
    bottom:18px;
    gap:20px;
    font-size:10px;
  }
}
