/* V64 MOBILE OPTIMIZADA
   Only applies to tablets/phones. Desktop layout (> 767px) stays exactly as V63. */
@media (max-width: 767px) {
  html { scroll-padding-top: 76px; }
  body.bf-site { overflow-x: hidden; }
  .bf-wrap { width: calc(100% - 32px); }

  /* Header / mobile navigation */
  .bf-header-inner { height: 64px; gap: 10px; }
  .bf-brand { width: 145px; }
  .bf-brand img { max-height: 50px; }
  .bf-menu-toggle { width: 42px; height: 42px; border-radius: 5px; flex: 0 0 42px; }
  .bf-mobile { max-height: calc(100dvh - 64px); padding: 10px 16px 28px; }
  .bf-mobile > a,
  .bf-mobile > details > summary { min-height: 52px; display: flex; align-items: center; }
  .bf-mobile details details { padding-left: 10px; }
  .bf-mobile details a { min-height: 44px; display: flex; align-items: center; }
  :root { --b-h: 64px; }
  .bf-site .product-subnav { top: 64px; }

  /* Buttons become easier to tap */
  .bf-site .bf-btn { min-height: 50px; }
  .bf-actions { width: 100%; }
  .bf-actions .bf-btn { flex: 1 1 100%; width: 100%; justify-content: space-between; }

  /* HOME: mobile-first composition, desktop untouched */
  body.bf-home .bf-home-slider,
  body.bf-home .bf-home-slide { height: 650px; min-height: 650px; }
  body.bf-home .bf-home-slide-copy,
  body.bf-home .bf-home-slide--story .bf-home-slide-copy,
  body.bf-home .bf-home-slide--process .bf-home-process-copy {
    width: calc(100% - 48px);
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
  }
  body.bf-home .bf-home-slide-copy h1 { font-size: clamp(42px, 12.3vw, 58px); }
  body.bf-home .bf-home-slide-copy h2,
  body.bf-home .bf-home-process-copy h2 { font-size: clamp(38px, 10.8vw, 52px); }
  body.bf-home .bf-home-slide-copy p,
  body.bf-home .bf-home-process-copy p { font-size: 14px; line-height: 1.5; margin-bottom: 20px; }
  body.bf-home .bf-home-brand-logo { width: min(80vw, 360px); }
  body.bf-home .bf-home-brand-kicker { font-size: 11px; letter-spacing: .18em; }
  body.bf-home .bf-home-mini { gap: 9px 16px; margin-top: 18px; font-size: 9px; }
  body.bf-home .bf-home-slide--story::after,
  body.bf-home .bf-home-slide--process::after {
    background: linear-gradient(180deg, rgba(8,10,12,.27), rgba(8,10,12,.72) 50%, rgba(8,10,12,.88));
  }
  body.bf-home .bf-home-slide--story .bf-home-slide-copy {
    align-self: flex-end;
    text-align: left;
    margin-bottom: 82px;
  }
  body.bf-home .bf-home-slide--story .bf-home-slide-copy p { margin-left: 0; margin-right: 0; }
  body.bf-home .bf-home-slide--story .bf-actions { justify-content: flex-start; }
  body.bf-home .bf-home-slide--story .bf-actions .bf-btn { width: auto; flex: 0 1 auto; }
  body.bf-home .bf-home-process-copy { text-align: left !important; padding-top: 76px !important; }
  body.bf-home .bf-home-process-copy p { margin-left: 0 !important; margin-right: 0 !important; max-width: 330px; }
  body.bf-home .bf-home-process-points { justify-content: flex-start; gap: 8px; margin-bottom: 18px; }
  body.bf-home .bf-home-process-points span { padding: 8px 10px; font-size: 9px; }
  body.bf-home .bf-home-slide--process .bf-actions { justify-content: flex-start; }
  body.bf-home .bf-home-slide--process .bf-actions .bf-btn { width: auto; flex: 0 1 auto; }
  body.bf-home .bf-home-process-float {
    left: 24px; right: 24px; bottom: 62px; transform: none;
    width: auto; max-width: none; border-radius: 18px;
  }
  body.bf-home .bf-home-process-float img { height: 156px; }
  body.bf-home .bf-home-process-float figcaption { left: 16px; right: 16px; bottom: 14px; gap: 4px; }
  body.bf-home .bf-home-process-float strong { font-size: 18px; }
  body.bf-home .bf-home-process-float span { font-size: 12px; }
  body.bf-home .bf-home-process-float small { font-size: 8px; padding: 5px 8px; }
  body.bf-home .bf-home-slider-head { top: 14px; font-size: 8px; letter-spacing: .2em; }
  body.bf-home .bf-home-side-arrow { width: 38px; height: 38px; }
  body.bf-home .bf-home-side-arrow--prev { left: 8px; }
  body.bf-home .bf-home-side-arrow--next { right: 8px; }
  body.bf-home .bf-home-bottom { bottom: 15px; }
  body.bf-home .bf-home-dot { width: 28px; height: 3px; }

  /* Home proof + product cards */
  body.bf-home .bf-proof .bf-wrap,
  body.bf-home .bf-catalog > .bf-wrap,
  body.bf-home .bf-final-inner,
  body.bf-home .bf-footer .bf-wrap { width: calc(100% - 32px); }
  body.bf-home .bf-proof-item { min-height: 58px; padding: 13px 0; }
  body.bf-home .bf-catalog { padding: 38px 0 46px; }
  body.bf-home .bf-section-head h2 { font-size: 36px; }
  body.bf-home .bf-product-card { border-radius: 5px; overflow: hidden; }
  body.bf-home .bf-product-media { height: 245px; padding: 20px 12px 12px; }
  body.bf-home .bf-product-media img { max-height: 220px; }
  body.bf-home .bf-product-info { padding: 20px 20px 0; }
  body.bf-home .bf-product-title h3 { font-size: 30px; }
  body.bf-home .bf-final .bf-btn { width: 100%; }

  /* Catalog / family pages */
  .v45-wrap { width: calc(100% - 28px); }
  .v45-page-intro { padding: 28px 0 26px; }
  .v45-page-intro h1 { font-size: clamp(38px, 11vw, 52px); line-height: .98; }
  .v45-page-intro p { font-size: 14px; line-height: 1.55; }
  .v45-page-intro-actions { width: 100%; }
  .v45-page-intro .v45-btn { width: 100%; justify-content: space-between; }
  .v45-card-grid,
  .v45-card-grid.two,
  .v45-family-grid,
  .v45-family-grid.two { gap: 14px; }
  .v45-card-media { height: 245px; padding: 18px; }
  .v45-card-media img { max-height: 218px; object-fit: contain; }
  .v45-card-body { padding: 18px 18px 16px; }
  .v45-card-body h3 { font-size: 24px; line-height: 1.05; }

  /* Product detail pages */
  .v45-breadcrumb { padding-top: 14px; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
  .v45-breadcrumb::-webkit-scrollbar { display: none; }
  .v45-detail-hero { gap: 0; }
  .v45-detail-media { min-height: 285px; padding: 18px; }
  .v45-detail-media img { max-height: 255px; width: 100%; object-fit: contain; }
  .v45-detail-summary { padding: 22px 18px 24px; }
  .v45-detail-summary h1 { font-size: clamp(36px, 10.8vw, 50px); margin-top: 12px; }
  .v45-detail-summary > p { font-size: 14px; line-height: 1.55; }
  .v45-kpis { gap: 8px; }
  .v45-kpi { min-height: 84px; padding: 13px; }
  .v45-kpi strong { font-size: 18px; }
  .v45-detail-actions { width: 100%; }
  .v45-detail-actions .v45-btn { width: 100%; justify-content: space-between; }
  .v45-subnav { top: 64px; overflow-x: auto; scrollbar-width: none; }
  .v45-subnav::-webkit-scrollbar { display: none; }
  .v45-subnav-inner { width: max-content; min-width: 100%; padding: 0 14px; }
  .v45-subnav a { min-height: 48px; padding: 0 12px; white-space: nowrap; }
  .v45-panel { padding: 22px 16px; }
  .v45-panel-head h2 { font-size: 30px; line-height: 1.04; }
  .v45-panel-head p { font-size: 13px; }
  .v45-spec-row { padding: 13px 0; }
  .v45-doc { min-height: 0; padding: 18px; }
  .v45-related a { padding: 17px; }
  .v45-related strong { font-size: 18px; }
  .v45-sales-box { padding: 20px 16px; }
  .v45-sales-box h3 { font-size: 25px; }
  .v45-sales-box .v45-btn { width: 100%; justify-content: space-between; }

  /* Quote page */
  .bf-quote-hero { width: calc(100% - 28px); padding: 28px 0 48px; }
  .bf-quote-grid { gap: 26px; }
  .bf-quote-intro h1 { font-size: clamp(44px, 13vw, 60px); margin: 14px 0 16px; }
  .bf-quote-intro > p { font-size: 14px; line-height: 1.55; }
  .bf-quote-steps { margin-top: 26px; }
  .bf-quote-step { padding: 13px 0; grid-template-columns: 30px 1fr; }
  .bf-quote-step strong { font-size: 13px; }
  .bf-quote-step small { font-size: 10px; }
  .bf-quote-trust { grid-template-columns: 1fr 1fr; margin-top: 18px; }
  .bf-quote-trust > div { padding: 11px 12px; }
  .bf-quote-panel-head { padding: 22px 16px 16px; }
  .bf-quote-panel-head strong { font-size: 22px; }
  .bf-quote-form-v48 { padding: 20px 16px 22px !important; }
  .bf-quote-form-v48 input,
  .bf-quote-form-v48 select { height: 50px; font-size: 16px; }
  .bf-model-preview { grid-template-columns: 104px minmax(0,1fr); gap: 12px; padding: 12px; }
  .bf-model-preview-media { height: 100px; }
  .bf-model-preview-copy strong { font-size: 15px; line-height: 1.25; }
  .bf-location-block { margin: 18px 0 16px; padding: 14px; }
  .bf-quote-submit { min-height: 54px; }

  /* Location */
  .bf-location-wrap { width: calc(100% - 28px); }
  .bf-location-hero { padding: 30px 0 34px; }
  .bf-location-copy h1 { font-size: clamp(42px, 12vw, 58px); }
  .bf-location-copy > p { font-size: 14px; }
  .bf-location-actions { display: grid; grid-template-columns: 1fr; }
  .bf-location-actions .bf-btn { width: 100%; justify-content: space-between; }
  .bf-location-map { height: 330px; }

  /* Generic pages: Nosotros / Contacto */
  .bf-site .page-hero { padding: 28px 0 30px; width: 100%; }
  .bf-site .page-hero h1 { font-size: clamp(42px, 12vw, 58px); line-height: .98; }
  .bf-site .page-hero p { font-size: 14px; line-height: 1.55; }
  .bf-photo-split { gap: 0; }
  .bf-photo-split img { height: 235px; }
  .bf-support-block { padding: 22px 18px; }
  .bf-support-block h2 { font-size: 30px; }
  .bf-support-block .bf-btn { width: 100%; justify-content: space-between; }

  /* Footer */
  .bf-footer-grid { grid-template-columns: 1fr; gap: 26px; }
  .bf-footer-grid > div:first-child { grid-column: auto; }
  .bf-footer-logo { width: 165px; }
  .bf-footer h2 { margin-top: 0; }
  .bf-footline { font-size: 10px; }
}

@media (max-width: 520px) {
  .bf-header .bf-header-cta { display: none; }
  .bf-menu-toggle { margin-left: auto; }
  body.bf-home .bf-home-slider,
  body.bf-home .bf-home-slide { height: 630px; min-height: 630px; }
  body.bf-home .bf-home-slide--story .bf-home-slide-copy { margin-bottom: 72px; }
  body.bf-home .bf-home-process-copy { padding-top: 66px !important; }
  body.bf-home .bf-home-process-copy h2 { margin-bottom: 12px; }
  body.bf-home .bf-home-process-copy p { margin-bottom: 14px; }
  body.bf-home .bf-home-process-float { left: 16px; right: 16px; bottom: 55px; }
  body.bf-home .bf-home-process-float img { height: 148px; }
  .v45-kpis { grid-template-columns: 1fr; }
  .bf-quote-trust { grid-template-columns: 1fr; }
}

@media (max-width: 380px) {
  .bf-wrap { width: calc(100% - 26px); }
  .bf-brand { width: 132px; }
  body.bf-home .bf-home-slide-copy,
  body.bf-home .bf-home-slide--story .bf-home-slide-copy,
  body.bf-home .bf-home-slide--process .bf-home-process-copy { width: calc(100% - 40px); }
  body.bf-home .bf-home-slide-copy h1 { font-size: 40px; }
  body.bf-home .bf-home-slide-copy h2,
  body.bf-home .bf-home-process-copy h2 { font-size: 36px; }
  .v45-wrap { width: calc(100% - 24px); }
  .v45-detail-media { min-height: 255px; }
  .bf-quote-hero { width: calc(100% - 24px); }
}
