/* Capa responsive común. Se carga después de los estilos de cada página. */
html { scroll-behavior:smooth; scroll-padding-top:150px; }
body { overflow-x:hidden; }
img { max-width:100%; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }

@media (max-width:767px) {
  html { scroll-padding-top:88px; }
  body { text-rendering:optimizeLegibility; }
  main { overflow:hidden; }
  :where(button,.u-btn,input,select,textarea,summary) { min-height:44px; }
  :where(input,select,textarea) { font-size:16px!important; }

  /* Inicio */
  .home-restored .u-section-1 .u-gallery-1 { height:min(72svh,620px)!important; min-height:470px; touch-action:pan-y; }
  .home-restored .u-section-1 .u-over-slide { padding:24px 62px 40px!important; }
  .home-restored .u-section-1 .u-gallery-heading { font-size:clamp(1.18rem,5.7vw,1.55rem)!important; line-height:1.25!important; }
  .home-restored .u-section-1 .u-gallery-text { font-size:.92rem!important; line-height:1.58!important; margin-top:8px!important; }
  .home-restored .u-section-1 .u-carousel-control { height:42px!important; width:42px!important; }
  .home-restored .u-section-1 .u-list-1 { margin-bottom:55px!important; margin-top:28px!important; overflow:hidden; padding:0 18px; width:100%!important; }
  .home-restored .u-section-1 .u-repeater-1 { display:flex!important; gap:12px!important; grid-template-columns:none!important; overflow-x:auto; padding:0 0 12px; scroll-padding-inline:18px; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .home-restored .u-section-1 .u-repeater-1::-webkit-scrollbar { display:none; }
  .home-restored .u-section-1 .u-repeater-item { flex:0 0 min(78vw,360px); min-height:440px!important; scroll-snap-align:center; }
  .home-restored .u-section-1 .u-layout-wrap-1 { margin-bottom:58px!important; margin-top:0!important; width:calc(100% - 36px)!important; }
  .home-restored .u-section-1 .u-container-layout-4 { padding:36px 22px!important; }
  .home-restored .u-section-1 .u-text-1 { font-size:clamp(2rem,9vw,2.7rem)!important; line-height:1.12!important; }
  .home-restored .u-section-1 .u-text-2 { font-size:.96rem!important; line-height:1.72!important; }
  .home-restored .u-section-1 .u-btn-1,.home-restored .u-section-1 .u-btn-2 { display:flex!important; justify-content:center; margin-left:auto!important; margin-right:auto!important; max-width:360px; width:100%; }
  .home-restored .u-section-1 .u-text-3 { font-size:clamp(1.85rem,8vw,2.45rem)!important; line-height:1.2!important; }
  .home-restored .u-section-2 .u-sheet-1 { min-height:480px!important; padding:70px 20px!important; }
  .home-restored .u-section-2 .u-text-1 { font-size:clamp(2rem,8vw,2.7rem)!important; line-height:1.2!important; }
  .home-restored .u-section-2 .u-text-2 { font-size:.96rem!important; line-height:1.72!important; margin-left:auto!important; margin-right:auto!important; }

  /* Portfolio */
  .portfolio-hero { min-height:calc(72svh - 20px)!important; padding:44px 20px!important; }
  .portfolio-hero h1 { font-size:clamp(2.8rem,14vw,4.2rem)!important; line-height:1!important; }
  .portfolio-hero p:not(.portfolio-eyebrow) { font-size:.98rem!important; }
  .portfolio-gallery-section { padding:18px 18px 50px!important; }
  .portfolio-gallery-heading { gap:18px!important; padding-bottom:25px!important; }
  .portfolio-gallery-heading h2 { font-size:clamp(2rem,9vw,2.7rem)!important; }
  .portfolio-filters { flex-wrap:nowrap!important; gap:22px!important; margin:25px -18px 28px!important; overflow-x:auto; padding:0 18px 8px; scrollbar-width:none; }
  .portfolio-filters::-webkit-scrollbar { display:none; }
  .portfolio-filters button { flex:0 0 auto; min-height:38px; }
  .portfolio-grid { display:grid!important; gap:8px!important; grid-auto-flow:dense!important; grid-auto-rows:auto!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .portfolio-shot,.portfolio-shot.shot-tall { aspect-ratio:2/3; grid-column:auto!important; grid-row:auto!important; }
  .portfolio-shot.shot-wide { aspect-ratio:3/2; grid-column:1/-1!important; grid-row:auto!important; }
  .portfolio-shot.shot-large { aspect-ratio:4/3; grid-column:1/-1!important; grid-row:auto!important; }
  .portfolio-client-collections-grid { grid-template-columns:1fr!important; }
  .portfolio-story { grid-template-columns:1fr!important; }
  .portfolio-story-image { min-height:0!important; }
  .portfolio-story-image img { aspect-ratio:4/3; }
  .portfolio-story-copy { padding:55px 22px 65px!important; }
  .portfolio-featured-stories { padding:58px 18px 68px!important; }
  .portfolio-featured-grid { grid-template-columns:1fr!important; }
  .portfolio-featured-card > a { grid-template-columns:1fr!important; }
  .portfolio-featured-card figure { aspect-ratio:4/3!important; }
  .portfolio-lightbox-dialog { grid-template-columns:44px minmax(0,1fr) 44px!important; padding:14px 0!important; }
  .portfolio-lightbox button { align-items:center; display:flex; height:44px; justify-content:center; width:44px; }
  .portfolio-lightbox-close { right:8px!important; top:max(8px,env(safe-area-inset-top))!important; }

  /* Te interesa */
  .stories-hero { min-height:min(var(--stories-cover-height,410px),410px)!important; padding:45px 20px!important; }
  .stories-hero h1 { font-size:clamp(2.45rem,12vw,3.6rem)!important; }
  .stories-section { padding:60px 18px 70px!important; }
  .stories-heading { gap:18px!important; margin-bottom:30px!important; }
  .stories-gallery { gap:18px!important; grid-template-columns:1fr!important; }
  .story-card,.story-card-featured { display:block!important; min-height:0!important; }
  .story-image { height:auto!important; }
  .story-image img { aspect-ratio:4/3; display:block; }
  .story-copy { padding:27px 22px 31px!important; }
  .stories-cta { padding:64px 20px!important; }
  .stories-cta a { justify-content:center; margin:5px 0; max-width:360px; width:100%; }

  /* Agenda */
  .booking-page { padding:42px 12px 65px!important; }
  .booking-intro { margin-bottom:30px!important; padding:0 8px!important; }
  .booking-intro h1 { font-size:clamp(2.35rem,11vw,3.2rem)!important; }
  .booking-intro > p:last-of-type { font-size:.96rem!important; }
  .booking-package-link { justify-content:center; width:100%; }
  .booking-shell { border-radius:14px!important; }
  .booking-sidebar { padding:22px!important; }
  .booking-business-details { display:none!important; }
  .booking-main { padding:24px 16px 34px!important; }
  .booking-progress { background:rgba(255,255,255,.94); margin:0 -4px 30px!important; padding:5px 4px 9px!important; position:sticky; top:88px; z-index:10; }
  .booking-progress li { gap:2px!important; }
  .booking-progress li span { flex-basis:28px!important; height:28px!important; }
  .booking-step h2 { font-size:clamp(1.75rem,9vw,2.35rem)!important; margin-bottom:22px!important; }
  .service-card { gap:11px!important; grid-template-columns:42px minmax(0,1fr)!important; padding:15px 13px!important; }
  .service-arrow { display:none; }
  .service-icon { height:42px!important; }
  .booking-date-layout { gap:30px!important; }
  .date-list { gap:6px!important; }
  .calendar-blank,.date-card { min-height:44px!important; }
  .calendar-toolbar button { height:44px!important; width:44px!important; }
  .time-list { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .package-description-card { margin-top:20px!important; }
  .package-description-content { max-height:52svh; overflow:auto; padding:22px 18px 25px!important; }
  .booking-field-grid { gap:0!important; grid-template-columns:1fr!important; }
  .booking-consent-row { align-items:flex-start!important; grid-template-columns:22px minmax(0,1fr)!important; gap:10px!important; }
  .booking-consent-row input { align-self:start!important; margin-top:2px!important; }
  .booking-policy-link { margin-left:32px!important; min-height:32px; }
  .booking-primary,.booking-secondary,.booking-whatsapp,.booking-exit { justify-content:center; width:100%; }
  .booking-confirmation-actions { align-items:stretch!important; flex-direction:column; }

  /* Reseñas y contacto */
  .reviews-page { padding-left:18px!important; padding-right:18px!important; }
  .reviews-summary,.reviews-list,.review-list { width:100%!important; }
  .reviews-summary button,.reviews-cta a { justify-content:center; max-width:360px; width:100%; }
  .review-card { border-radius:15px!important; padding:24px 20px!important; }
  .u-section-1.contact-hero,.contact-page .u-section-1 { min-height:350px!important; }
  .u-section-2 .u-sheet-1 { padding:52px 12px 64px!important; }
  .u-section-2 .u-form-1 form { padding:24px 14px!important; }
  .u-section-2 .u-btn-1 { width:100%!important; }

  /* Experiencia y paquete */
  .experience-hero { height:66svh!important; min-height:470px!important; }
  .experience-hero-copy { padding:0 20px 46px!important; }
  .experience-intro,.experience-locations,.experience-faq,.experience-cta { padding-bottom:65px!important; padding-top:65px!important; }
  .experience-process { padding:65px 18px!important; }
  .experience-step { gap:20px!important; grid-template-columns:1fr!important; }
  .experience-step figure { aspect-ratio:4/3!important; }
  .experience-locations>div { grid-template-columns:1fr!important; }
  .experience-cta a { align-items:center; display:flex; justify-content:center; max-width:360px; min-height:46px; width:100%; }
  .package-builder-page,.package-main { padding-left:18px!important; padding-right:18px!important; }
}

@media (max-width:420px) {
  .home-restored .u-section-1 .u-over-slide { padding-left:48px!important; padding-right:48px!important; }
  .portfolio-lightbox-dialog { grid-template-columns:40px minmax(0,1fr) 40px!important; }
  .booking-main { padding-left:13px!important; padding-right:13px!important; }
}

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