/* Corazones de Energía v2.3.0 · Responsive hardening
   Capa final de compatibilidad para móvil, tablet y pantallas grandes. */
html{overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:hidden;min-width:280px}
main,section,article,aside,header,footer,nav,form,fieldset{min-width:0}
img,picture,video,canvas,svg{max-width:100%}
img{height:auto}
button,input,select,textarea{max-width:100%}
a,button{-webkit-tap-highlight-color:transparent}
.wrap{width:min(1180px,calc(100% - 32px))}

/* Evita saltos/overflow por textos o enlaces largos. */
p,h1,h2,h3,h4,a,span,small,b,strong{overflow-wrap:anywhere}

/* Accesibilidad táctil y foco visible. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(126,76,156,.28);outline-offset:3px
}

/* Header global */
.site-header-unified{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.site-header-unified .unified-nav-wrap{width:min(1180px,calc(100% - 32px))}
.site-header-unified .unified-actions{min-width:0}
.site-header-unified .unified-contact,.site-header-unified .unified-cart{white-space:nowrap}

/* Tipografía fluida sin alterar el carácter del diseño. */
.inner-hero h1,.booking-intro h1,.product-detail-copy h1,.order-success h1{font-size:clamp(42px,6vw,58px)}
.booking-info-card h2{font-size:clamp(38px,5vw,47px)}
.catalog-card h2,.product-card h2{line-height:1.25}

/* Formularios y bloques de compra */
.booking-form input,.booking-form select,.booking-form textarea,
.checkout-form input,.checkout-form select,.checkout-form textarea,
.buy-form input,.buy-form select,.buy-form textarea{min-height:46px}
textarea{resize:vertical}
.order-summary,.booking-info,.booking-info-v21{max-width:100%}
.cart-row,.summary-item{min-width:0}

/* Imágenes de catálogo: aspecto estable, sin deformación. */
.product-image img,.product-detail-image img,.service-cover,.cart-thumb img{display:block;width:100%;object-fit:cover}
.product-detail-image img{border-radius:24px}

/* Footer global */
.site-footer-unified{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}

/* PWA */
.pwa-install{max-width:calc(100vw - 24px);bottom:calc(14px + env(safe-area-inset-bottom));right:calc(14px + env(safe-area-inset-right));z-index:90}
.pwa-install[hidden]{display:none!important}
.pwa-install.is-ios{padding-left:18px;padding-right:18px}
.pwa-toast{position:fixed;left:50%;bottom:calc(72px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:91;width:min(420px,calc(100% - 28px));padding:13px 16px;border-radius:16px;background:#fffaf8;color:#5f4964;border:1px solid #e5d6e5;box-shadow:0 18px 50px rgba(70,43,76,.2);font-size:12px;line-height:1.55;text-align:center}
.net-status{position:fixed;left:50%;top:calc(10px + env(safe-area-inset-top));transform:translateX(-50%);z-index:100;padding:7px 12px;border-radius:999px;background:#5c3b65;color:#fff;font-size:10px;box-shadow:0 10px 28px rgba(50,30,55,.2)}

@media (min-width:1400px){
  .wrap,.site-header-unified .unified-nav-wrap{width:min(1240px,calc(100% - 64px))}
  .inner-hero{padding-top:82px;padding-bottom:60px}
}

@media (max-width:1100px){
  .wrap,.site-header-unified .unified-nav-wrap{width:min(100% - 28px,980px)}
  .shop-grid,.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .product-detail-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:30px}
  .checkout-layout,.cart-layout{gap:24px}
}

@media (max-width:980px){
  body.menu-open{overflow:hidden}
  .site-header-unified{height:72px}
  .site-header-unified .unified-nav-wrap{height:72px}
  .site-header-unified .unified-nav{max-height:calc(100dvh - 92px);overflow:auto;overscroll-behavior:contain}
  .site-header-unified .unified-nav.open{display:grid}
  .booking-layout,.booking-layout-v21,.checkout-layout,.cart-layout,.product-detail-grid{grid-template-columns:1fr!important}
  .booking-info,.order-summary{position:static!important;top:auto!important}
  .booking-info-v21{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .booking-help{grid-column:1/-1}
  .service-detail .detail-card{padding:32px}
  .detail-top{display:grid;grid-template-columns:1fr}
  .chips{margin-top:6px}
  .product-detail-image{max-width:680px;width:100%;margin:0 auto}
}

@media (max-width:760px){
  .wrap,.site-header-unified .unified-nav-wrap{width:calc(100% - 24px)}
  .section{padding-top:38px;padding-bottom:38px}
  .inner-hero{padding:46px 0 34px}
  .inner-hero.compact{padding:40px 0 28px}
  .inner-hero p{font-size:14px;line-height:1.65}
  .booking-intro{padding:34px 0 28px}
  .booking-intro-grid{grid-template-columns:1fr!important;gap:20px}
  .booking-intro-note{border-left:0!important;border-top:1px solid #dac9da;padding:16px 0 0!important}
  .booking-panel,.booking-panel-v21,.panel-public,.catalog-card{padding:20px!important;border-radius:22px!important}
  .booking-info-v21{grid-template-columns:1fr}
  .booking-help{grid-column:auto}
  .form-row{grid-template-columns:1fr!important}
  .booking-form input,.booking-form select,.booking-form textarea,
  .checkout-form input,.checkout-form select,.checkout-form textarea,
  .buy-form input,.buy-form select,.buy-form textarea{font-size:16px;min-height:48px}
  .booking-progress-v21{gap:6px}
  .booking-progress-v21 span{min-height:68px;display:grid;place-items:center;text-align:center;padding:8px 5px}
  .booking-progress-v21 span b{margin:auto}
  .shop-grid,.catalog-grid{grid-template-columns:1fr}
  .product-image{height:auto;aspect-ratio:4/3}
  .product-detail{padding-top:30px}
  .product-detail-copy{text-align:left}
  .product-detail-copy h1,.product-detail-copy .section-kicker.left{text-align:left!important}
  .buy-form{justify-content:flex-start!important}
  .service-detail{padding:34px 0}
  .service-detail .detail-card{padding:22px;border-radius:22px}
  .detail-top h1{font-size:clamp(42px,13vw,54px)}
  .detail-actions{display:grid;grid-template-columns:1fr}
  .detail-actions .btn{width:100%;justify-content:center;text-align:center}
  .cart-row{grid-template-columns:56px minmax(0,1fr) 70px!important;gap:10px!important;align-items:center}
  .cart-row strong{grid-column:2}
  .cart-row .link-danger{grid-column:3;grid-row:2}
  .cart-thumb{width:54px!important;height:54px!important}
  .order-summary{padding:20px;border-radius:22px}
  .order-confirm{grid-template-columns:1fr!important}
  .ref-footer p{line-height:1.55}
  .pwa-install{font-size:11px;padding:10px 15px}
}

@media (max-width:520px){
  .wrap,.site-header-unified .unified-nav-wrap{width:calc(100% - 20px)}
  .site-header-unified .unified-brand{flex-basis:78px;width:78px}
  .site-header-unified .unified-brand img{width:78px!important;max-width:78px!important}
  .site-header-unified .unified-nav.open{grid-template-columns:1fr 1fr}
  .site-header-unified .unified-nav a{font-size:12px!important;min-height:44px}
  .site-header-unified .unified-cart .cart-label{font-size:10px}
  .inner-hero h1{font-size:clamp(40px,13vw,48px)}
  .booking-intro h1{font-size:clamp(41px,13vw,48px)}
  .booking-step-title h2{font-size:clamp(25px,8vw,32px)}
  .booking-fieldset legend{font-size:15px}
  .catalog-card .btn,.product-card .btn{min-height:42px}
  .cart-row{grid-template-columns:50px minmax(0,1fr) 62px!important}
  .cart-row input{width:60px!important;min-width:0}
  .ref-footer{padding-bottom:calc(10px + env(safe-area-inset-bottom))}
}

@media (max-width:360px){
  .site-header-unified .unified-nav.open{grid-template-columns:1fr}
  .booking-progress-v21{grid-template-columns:1fr 1fr 1fr}
  .booking-progress-v21 span{font-size:8px}
  .cart-row{grid-template-columns:46px minmax(0,1fr) 56px!important}
  .cart-thumb{width:46px!important;height:46px!important}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* v3.0.0 */
@media(max-width:900px){.reservation-layout{grid-template-columns:1fr}.reservation-summary{position:static}.catalog-grid-rich{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.site-footer-links{gap:9px}.site-footer-links a{font-size:8px}.legal-card{padding:22px;border-radius:20px}.catalog-grid-rich{grid-template-columns:1fr}.catalog-image{height:220px}.catalog-card-content{padding:20px}.catalog-card-rich .catalog-actions{display:grid}.catalog-card-rich .catalog-actions .btn{width:100%}.reservation-summary>img{height:220px}.reservation-form-card,.reservation-summary{padding:20px}.reservation-success h2{font-size:40px}.lookup-state h2{font-size:42px}.lookup-history>div{grid-template-columns:1fr;gap:3px}.lookup-actions{display:grid}.lookup-actions .btn{width:100%}}
